![](/img/trans.png)
[英]How to use lsof(List Opened Files) in a C/C++ application?
[英]Making a C++ application “Opened with…”
我正在研究一個或多或少圍繞重命名文件的(C ++)程序。 我要創建它,以便您可以選擇一個文件,右鍵單擊它並選擇“打開方式”,然后選擇我的應用程序。 我弄清楚了上下文菜單部分,我只是不知道該怎么做C ++部分。
換句話說,如何制作可以與文件一起打開(通過上下文菜單或直接打開它)的程序(在C ++中)並處理該文件?
示例:在Windows中,我將“ .roberto”擴展名與“ C:\\ Program Files \\ MyProgram \\ MyProgram.exe ”關聯。 因此,如果我打開“ .roberto”文件,則會彈出命令提示符,僅顯示所選文件的名稱。
我希望這很清楚,我不確定該如何解釋。 我在搜索這個問題時也遇到了一些麻煩,因此,如果以前曾問過這個問題,請原諒我。 謝謝。
在基於MFC的應用程序的Windows平台上,此操作由應用程序類的InitInstance()
方法中的框架自動完成:
EnableShellOpen();
RegisterShellFileTypes(TRUE);
重要說明:通常,此功能取決於框架且特定於操作系統。
我想到了!
使用給main的參數是線索。 如果直接打開,下面的程序將打印一行,該行是程序本身的路徑,如果使用“打開方式...”選項打開,它還將顯示所選文件。
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
cout << "Argument count: " << argc << endl << endl;
for (int i = 0; i < argc; i++)
{
cout << argv[i] << endl;
}
cout << endl << endl << endl << endl;
system("pause");
return 0;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.