溫馨提示×

shellexecuteinfo如何處理文件關(guān)聯(lián)啟動(dòng)

小樊
90
2024-07-06 21:39:14
欄目: 編程語言

要處理文件關(guān)聯(lián)啟動(dòng),可以使用ShellExecuteEx函數(shù)和SHELLEXECUTEINFO結(jié)構(gòu)體。首先,需要填充SHELLEXECUTEINFO結(jié)構(gòu)體的成員變量,其中包括lpFile(要啟動(dòng)的文件名)、lpParameters(傳遞給應(yīng)用程序的命令行參數(shù))、lpDirectory(要啟動(dòng)的工作目錄)、nShow(窗口顯示方式)等。

接下來,調(diào)用ShellExecuteEx函數(shù),將填充好的SHELLEXECUTEINFO結(jié)構(gòu)體作為參數(shù)傳遞進(jìn)去,函數(shù)會根據(jù)結(jié)構(gòu)體中的信息來啟動(dòng)相應(yīng)的應(yīng)用程序,并處理文件關(guān)聯(lián)啟動(dòng)的相關(guān)操作。

以下是一個(gè)示例代碼:

SHELLEXECUTEINFO sei = {0};
sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.lpFile = _T("C:\\Program Files\\MyApp\\MyApp.exe");
sei.lpParameters = _T("myfile.txt");
sei.lpDirectory = NULL;
sei.nShow = SW_SHOWNORMAL;

if (ShellExecuteEx(&sei))
{
    // 等待應(yīng)用程序退出
    WaitForSingleObject(sei.hProcess, INFINITE);
    CloseHandle(sei.hProcess);
}

在這個(gè)示例中,我們將會啟動(dòng)"MyApp.exe"應(yīng)用程序,并傳遞"myfile.txt"文件名作為參數(shù)。我們還使用了WaitForSingleObject函數(shù)來等待應(yīng)用程序的退出,并使用CloseHandle函數(shù)關(guān)閉應(yīng)用程序的句柄。

0