【问题标题】:MFC: How to open windows dialog "Open With" (Choose the program you want to use to open this file)?MFC:如何打开 Windows 对话框“打开方式”(选择要用于打开此文件的程序)?
【发布时间】:2014-04-06 05:12:06
【问题描述】:

当我在打开的菜单中右键单击窗口中的某个文件时,有一个Open With... 行,通过单击我可以选择一些程序,它将打开选定的文件。所以现在我需要使用MFC 为某个文件启动这个对话框(或者只为"tmp.xml" 名称运行)。我需要像 CFileDialog 这样的东西,它可以浏览文件。

我找到了SHOpenWithDialog,但它的最低支持客户端是Windows Vista [仅限桌面应用],最好也支持Windows XP。

【问题讨论】:

    标签: winapi mfc


    【解决方案1】:

    所以我找到了这种解决方案。

    void OpenWith(CString strFileNameToOpen)
    {
        TCHAR lpPathBuffer[MAX_PATH];
        GetSystemDirectory(lpPathBuffer, MAX_PATH);
        CString strSystemDir = lpPathBuffer;
        STARTUPINFO si = {0};
        PROCESS_INFORMATION pi = {0};
        strSystemDir.Format(_T("rundll32.exe %s\\shell32.dll,OpenAs_RunDLL %s"), lpPathBuffer, strFileNameToOpen);
        CreateProcess(NULL, strSystemDir.GetBuffer(), NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
        CloseHandle(pi.hThread);
        CloseHandle(pi.hProcess);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 2015-07-17
      • 2011-02-02
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多