CreateProcess()用法

news/2025/3/23 9:23:07/


// 第一种使用方法
//
char szCommandLine[] = "notepad";
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
si.dwFlags = STARTF_USESHOWWINDOW;//指定wShowWindow成员有效
si.wShowWindow = TRUE;//此成员设为TRUE的话则显示新建进程的主窗口
BOOL bRet = CreateProcess(
NULL,//不在此指定可执行文件的文件名
_tcsdup(TEXT("c:\\windows\\system32\\notepad.exe")),//命令行参数
NULL,//默认进程安全性
NULL,//默认进程安全性
FALSE,//指定当前进程内句柄不可以被子进程继承
CREATE_NEW_CONSOLE,//为新进程创建一个新的控制台窗口
NULL,//使用本进程的环境变量
NULL,//使用本进程的驱动器和目录
&si,
&pi);
if (bRet)
{
//不使用的句柄最好关掉
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
printf("新进程的ID号:%d\n", pi.dwProcessId);
printf("新进程的主线程ID号:%d\n", pi.dwThreadId);
}





// 第二种使用方法
//
// 本人使用这个方法,是在UNCODE字符集。
// 使用时需要注意一下字符集,有可能会因为字符集的原因会出现其它错误。


STARTUPINFO StartInfo = { sizeof(StartInfo) };
PROCESS_INFORMATION ProcInfo;
StartInfo.dwFlags = STARTF_USESHOWWINDOW;
StartInfo.wShowWindow = FALSE;
//LPTSTR pro = _tcsdup(TEXT("c:\\windows\\system32\\notepad.exe"));
LPTSTR pro = _tcsdup(TEXT("D:\\testfile\\Release\\MSGClient.exe"));
CreateProcess(NULL, pro, NULL, NULL, NULL, NULL, NULL, NULL, &StartInfo, &ProcInfo);
system("pause");




// 第三种使用方法
//
SHELLEXECUTEINFO shExecInfo;
shExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
shExecInfo.fMask = NULL;
shExecInfo.hwnd = NULL;
shExecInfo.lpVerb = L"";
shExecInfo.lpFile = L"D:\testfile\\Release\\MSGClient.exe";
//shExecInfo.lpParameters = __argv[1];
shExecInfo.lpDirectory = NULL;
shExecInfo.nShow = SW_SHOW;
shExecInfo.hInstApp = NULL;
ShellExecuteEx(&shExecInfo);



//错误代码获取

/

DWORD dw = GetLastError();




http://www.ppmy.cn/news/542369.html

相关文章

window编程之CreateProcess

1.函数说明: WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。 2.函数原型: BOOL CreateProcess ( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES …

CreateProcess函数 详细使用

http://www.cr173.com/html/11519_1.html 函数原型  BOOL CreateProcess ( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes。 LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFla…

CreateProcess 的正确关闭

最近用到了 CreateProcess 现在对CreateProcess 退出的处理做一些说明。 BOOL ret CreateProcess(NULL,cCmdLine,NULL,NULL,FALSE,0,NULL,NULL,&startInfo,&procInfo); if (ret) { // 1 如果不需要使用的话,首先关闭Process主线程句柄。 …

CreateProcess创建新的进程

CreateProcess创建新的进程 标签: attributes windows null security class 扩展 2010-03-16 10:37 3472人阅读 评论(0) 收藏 举报 分类: C(381) 版权声明:本文为博主原创文章,未经博主允许不得转载。…

第4章 网络层

1‌、下列关于路由算法描述错误的是( ) A. 链路状态算法是一种全局路由算法,每个路由器需要维护全局状态信息B. OSPF 是一种域内路由协议,核心是基于 Dijkstra 最低费用路径算法C. RIP 是一种域内路由算法,核心是基…

C++使用CreateProcess执行cmd命令(实例演示)

使用CreateProcess可以执行cmd命令&#xff0c;也可以执行一些可执行程序。 //摘自msdn的示例代码 #include <windows.h> #include <stdio.h> #include <tchar.h> void _tmain( int argc, TCHAR *argv[] ) {STARTUPINFO si;PROCESS_INFORMATION pi;ZeroMemo…

关于CreateProcess的问题

这两天一直在搞cmd回显的问题&#xff0c;虽然已经搞定&#xff0c;但还是存在一些问题&#xff0c;这就是CreateProcess的问题 首先问题描述&#xff1a; CreateProcess这个函数非常熟悉&#xff0c;再熟悉不过了 创建进程 具体说明如下&#xff1a; BOOL CreateProcess( …

CreateProcess的用法

看个简单程序吧&#xff1a; #include <windows.h> #include <stdio.h> int main() { STARTUPINFO si {sizeof(STARTUPINFO)}; //必须初始化PROCESS_INFORMATION pi; char cmdline[] "c://program files//internet explorer//iexplore.exe http://www.bai…