2014-03-04 44 views
4

當我在打開的菜單的窗口中右擊某個文件時,有一條Open With...行,通過點擊我可以選擇一些程序,這將打開選定的文件。所以現在我需要使用MFC來啓動某個文件的對話框(或者只是運行"tmp.xml"名稱)。我需要類似CFileDialog這可以瀏覽文件。MFC:如何打開窗口對話框「打開方式」(選擇你想用來打開這個文件的程序)?

我找到了SHOpenWithDialog,但支持最低支持的客戶端是Windows Vista [僅適用於桌面應用程序],因此最好支持Windows XP。

回答

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); 
} 
相關問題