打开其他应用程序

2020-04-14  本文已影响0人  钊明

TCHAR szCmdline[] = TEXT("D:\\QBoot\\2020P\\potplay\\PotPlayer\\PotPlayerMini64.exe"); // 设置子进程路径

BOOL bSuccess = FALSE;

PROCESS_INFORMATION pi;  // 用来接收新进程的识别信息

STARTUPINFO si;  // 用于决定新进程的主窗体如何显示

// 设置PROCESS_INFORMATION

ZeroMemory(&pi, sizeof(PROCESS_INFORMATION));  // 用0填充内存区域

// 设置STARTUPINFO

ZeroMemory(&si, sizeof(STARTUPINFO));

si.cb = sizeof(STARTUPINFO);  // 结构大小

si.dwFlags |= STARTF_USESTDHANDLES;  // 使用hStdInput 、hStdOutput 和hStdError 成员 

bSuccess = CreateProcess(

NULL,          // lpApplicationName

szCmdline,    // command line

  // 以上两个字段都可以创建目标子进程

NULL,          // process security attributes

NULL,          // primary thread security attributes

TRUE,          // bInheritHandles:指示新进程是否从调用进程处继承了句柄

0,          // creation flags:指定附加的、用来控制优先类和进程的创建的标志。

  // 设置为 CREATE_NEW_CONSOLE 可显示子窗口

NULL,          // use parent's environment

NULL,          // use parent's current directory

&si,          // STARTUPINFO :指向一个用于决定新进程的主窗体如何显示的STARTUPINFO结构体

&pi            // PROCESS_INFORMATION :指向一个用来接收新进程的识别信息的PROCESS_INFORMATION结构体

);

// If an error occurs, exit the application.

if (!bSuccess)

MessageBox("创建子程序失败");

else

{

// 关闭一些子进程用的句柄

CloseHandle(pi.hProcess);

CloseHandle(pi.hThread);

/*CloseHandle(write1);

CloseHandle(read2);*/

}

return bSuccess; //true-->创建成功

上一篇 下一篇

猜你喜欢

热点阅读