shellexecuteinfo如何处理文件关联启动

avatar
作者
筋斗云
阅读量: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函数关闭应用程序的句柄。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!