制作 C++ 应用程序 "Opened with..."

Making a C++ application "Opened with..."

我正在开发一个或多或少围绕重命名文件的 (C++) 程序。我想这样做,这样你就可以 select 一个文件,用鼠标右键单击它,然后 select "Open With" 然后 select 我的应用程序。 我弄清楚了上下文菜单部分,我只是不知道如何做 C++ 部分。

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

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

我希望这是清楚的,我不确定如何解释。我在搜索这个问题时也遇到了一些麻烦,所以如果之前有人问过这个问题,请原谅我。 谢谢

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

EnableShellOpen();
RegisterShellFileTypes(TRUE);

重要提示: 通常此功能依赖于框架并且 OS 特定。

我想通了!

使用给 main 的参数是线索。下面的程序如果直接打开打印一行,这一行是程序本身的路径,如果用'Open with...'选项打开它还会显示选择的文件。

#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;
}