CreateProcess实例和TerminateProcess实例

这个实例编写了两个函数,分别叫做shell和kill(用到的api分别是CreateProcess和,TerminateProcess).shell函数的参数是一个你要执行的可执行文件的名称,当然只要文文件格式符合exe的pe格式就可以(比如你可以把一个calc.exe改名为calc.jpg用这个函数照样可以执行),然后他返回新创建的这个进程的pid。

第二个函数的作用是结束一个进程,你只须传入这个进程的pid即可。若成功返回true, 否则返回false。

很简单吧。

#include <windows.h>

DWORD shell(char* cmdline)
{
 STARTUPINFO si;
 PROCESS_INFORMATION pi;
 GetStartupInfo(&si);

 CreateProcess(NULL,
  cmdline,
  NULL,
  NULL,
  false,
  0,
  NULL,
  NULL,
  &si,
  &pi
  );
 return pi.dwProcessId;
}

bool kill(DWORD pid)
{
 bool result=false;
 HANDLE hprocess=OpenProcess(PROCESS_TERMINATE,false,pid);
 result=TerminateProcess(hprocess,0);
 CloseHandle(hprocess);
 return result;
}

int main()
{
 DWORD pid=shell("calc.exe");
 if(pid)
 {
  MessageBox(NULL,"process created successfully!\n","ok",MB_OK);
 }
 kill(pid);

 return 0;
}



文章来自: 本站原创
Tags:
评论: 1 | 查看次数: 19920