创建进程

有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。
1.CreateProcess因为使用复杂,比较少用。
2.WinExec主要运行EXE文件。如:WinExec('Notepad.exe Readme.txt', SW_SHOW);
3.ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。

 

 

HINSTANCE ShellExecute(
  _In_opt_ HWND    hwnd,//父窗口句柄或出错时显示错误父窗口的句柄,可以为 NULL
  _In_opt_ LPCTSTR lpOperation,//操作
  _In_     LPCTSTR lpFile,//要打开的文件名、执行的程序名、浏览的文件夹等。
  _In_opt_ LPCTSTR lpParameters,//可执行程序的参数,否则为 NULL
  _In_opt_ LPCTSTR lpDirectory,//默认目录
  _In_     INT     nShowCmd//显示类型
);
 

 

ShellExecute代码展示:ShellExecute((HWND)GetDesktopWindow(),_T("open"),_T("D:/DD Work/Supcon/CCTV/cctv_vs2008-z-1213/bin/cctv.exe"),_T("-p 100 100 -s 1000 1000"),_T("D:/DD Work/Supcon/CCTV/cctv_vs2008-z-1213/bin"),SW_SHOWNORMAL  );

createprocess调用展示	
// TCHAR szCommandLine[] = TEXT("D:/DD Work/Supcon/CCTV/cctv_vs2008-z-1213/bin/cctv.exe -p 500 500 ");//或者WCHAR
 //   //LPWSTR szCommandLine = TEXT("NOTEPAD");//错误
 //   //STARTUPINFO si = { sizeof(si) };
 //   STARTUPINFO si;
 //   PROCESS_INFORMATION pi;
 //   ZeroMemory(&si, sizeof(si));
 //   si.cb = sizeof(si);
 //   ZeroMemory(&pi, sizeof(pi));
 //
 //   si.dwFlags = STARTF_USESHOWWINDOW;  // 指定wShowWindow成员有效
 //   si.wShowWindow = TRUE;          // 此成员设为TRUE的话则显示新建进程的主窗口,
 //                       // 为FALSE的话则不显示
 //   BOOL bRet = ::CreateProcess (
 //       NULL,           // 不在此指定可执行文件的文件名
 //       szCommandLine,      // 命令行参数
 //       NULL,           // 默认进程安全性
 //       NULL,           // 默认线程安全性
 //       FALSE,          // 指定当前进程内的句柄不可以被子进程继承
 //       CREATE_NEW_CONSOLE, // 为新进程创建一个新的控制台窗口
 //       NULL,           // 使用本进程的环境变量
 //       NULL,           // 使用本进程的驱动器和目录
 //       &si,
 //       &pi);
 //
 //   if(bRet)
 //   {
 //       WaitForSingleObject(pi.hProcess, INFINITE);
 //       // 既然我们不使用两个句柄,最好是立刻将它们关闭
 //       ::CloseHandle (pi.hThread);
 //       ::CloseHandle (pi.hProcess);
 //
 //       printf(" 新进程的进程ID号:%d \n", pi.dwProcessId);
 //       printf(" 新进程的主线程ID号:%d \n", pi.dwThreadId);
 //   }
	//else
	//{
	//	printf(" 错误码:%d \n",bRet );
	//
	//}

C++交流群:585225803

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值