关于CreateProcess函数一些经验

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
TCHAR szCmdLine[]={TEXT("E:\\CPL-server\\其他工具\\restartSrv\\bin\\opensavepath.exe")};
TCHAR static szCommandLine[MAX_PATH + 700] = {0};
lstrcpy(szCommandLine, pProgramPath);
 
STARTUPINFO si = {0};
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.wShowWindow = SW_SHOW;
si.dwFlags     = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
 
// 运行进程
PROCESS_INFORMATION pi;
ZeroMemory(&pi, sizeof(pi));
 
BOOL bRet = FALSE;
bRet = CreateProcess(pProgramPath, NULL, NULL, NULL, FALSE, NULL, NULL, NULL, &si, &pi);
 
///<关闭Restartsrv不会关闭创建进程子窗口>
//BOOL bRet = CreateProcess(
//  NULL,                   // name of executable module
//  szCmdLine,          // command line string
//  NULL,                   // process attributes
//  NULL,                   // thread attributes
//  FALSE,                  // handle inheritance option
//  CREATE_NEW_CONSOLE,                     // creation flags
//  NULL,                   // new environment block
//  NULL,                   // current directory name
//  &si,                    // startup information
//  &pi);                   // process information
 
if( bRet )
{
    CloseHandle(pi.hThread);
    CloseHandle(pi.hProcess);
}
 
//ShellExecute(NULL, "open", szCmdLine, NULL, NULL, SW_SHOWNORMAL);
 
return bRet;

jpg 改 rar 

posted @ 2018-08-23 16:04  狂客  阅读(181)  评论(0编辑  收藏  举报