使C ++应用程序“打开...”

时间:2015-04-14 18:20:29

标签: c++ windows file associations

我正在开发一个或多或少围绕重命名文件的(C ++)程序。我想这样做,你可以选择一个文件,右键单击它并选择“打开方式”,然后选择我的应用程序。 我得到了上下文菜单部分,我只是不知道如何做C ++部分。

换句话说,如何创建一个可以与文件一起打开的程序(在C ++中)(通过上下文菜单或直接打开它)并处理这个文件?

实施例: 在我的Windows中,我将“.roberto”扩展名与“ C:\ Program Files \ MyProgram \ MyProgram.exe ”相关联。因此,如果我打开“.roberto”文件,会弹出一个命令提示符,只显示所选文件的名称。

我希望这很清楚,我不知道如何解释这一点。我也在搜索这个问题时遇到了一些麻烦,所以请原谅我,如果以前曾经问过这个问题。 感谢。

2 个答案:

答案 0 :(得分:1)

在基于 MFC 的应用程序中的 Windows 平台上,这是由应用程序类的InitInstance()方法中的框架自动完成的:

EnableShellOpen();
RegisterShellFileTypes(TRUE);

重要提示:通常,此功能取决于框架,并且特定于操作系统。

答案 1 :(得分:0)

我明白了!

使用给予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;
}