当我在打开的菜单中右键单击Windows中的某个文件时,有一个Open With...
行,点击我可以选择一些程序,这将打开所选文件。所以现在我需要使用"tmp.xml"
为某个文件启动此对话框(或者只运行MFC
名称)。我需要像CFileDialog
这样的东西来浏览文件。
我找到SHOpenWithDialog
,但最低支持的客户端是Windows Vista [仅限桌面应用],最好也支持Windows XP。
答案 0 :(得分:0)
所以我找到了这种解决方案。
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);
}