阅读量:2
要处理文件关联启动,可以使用ShellExecuteEx函数和SHELLEXECUTEINFO结构体。首先,需要填充SHELLEXECUTEINFO结构体的成员变量,其中包括lpFile(要启动的文件名)、lpParameters(传递给应用程序的命令行参数)、lpDirectory(要启动的工作目录)、nShow(窗口显示方式)等。
接下来,调用ShellExecuteEx函数,将填充好的SHELLEXECUTEINFO结构体作为参数传递进去,函数会根据结构体中的信息来启动相应的应用程序,并处理文件关联启动的相关操作。
以下是一个示例代码:
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)) { // 等待应用程序退出 WaitForSingleObject(sei.hProcess, INFINITE); CloseHandle(sei.hProcess); }
在这个示例中,我们将会启动"MyApp.exe"应用程序,并传递"myfile.txt"文件名作为参数。我们还使用了WaitForSingleObject函数来等待应用程序的退出,并使用CloseHandle函数关闭应用程序的句柄。