當前位置:編程學習大全網 - 源碼下載 - 如何利用Windows提供的API函數,編寫程序,實現進程的創建和終止(如創建寫字板進程及終止該進程)

如何利用Windows提供的API函數,編寫程序,實現進程的創建和終止(如創建寫字板進程及終止該進程)

#include "stdafx.h"

#include <windows.h>

#include <iostream>

#include <cstdio>

#include "Tlhelp32.h"

using namespace std;

#define PROCESS_PATH L"C:\\Program Files\\Windows NT\\Accessories\\wordpad.exe"

void open()

{

WCHAR proPath[MAX_PATH];

STARTUPINFO si = { sizeof(si) };

PROCESS_INFORMATION pi;

wcscpy(proPath,PROCESS_PATH);

si.dwFlags = STARTF_USESHOWWINDOW;

si.wShowWindow = TRUE;

BOOL bRet = ::CreateProcess(NULL, proPath, NULL,NULL,FALSE, CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);

return;

}

void close()

{

PROCESSENTRY32 pe;

HANDLE hProcess;

pe.dwSize = sizeof (PROCESSENTRY32);

HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

Process32First(hSnapshot,& pe);

do

{

if ( ! _tcsicmp(pe.szExeFile,_T( "wordpad.exe" )))

{

break;

}

pe.dwSize = sizeof(PROCESSENTRY32);

} while(Process32Next(hSnapshot, & pe));

STARTUPINFO si = { sizeof(si) };

PROCESS_INFORMATION pi;

si.dwFlags = STARTF_USESHOWWINDOW;

si.wShowWindow = TRUE;

hProcess = ::OpenProcess(PROCESS_TERMINATE,FALSE,pe.th32ProcessID); //根據進程ID返回對象句柄

::TerminateProcess(hProcess,0); //根據對象句柄結束進程

CloseHandle(hSnapshot);

CloseHandle(hProcess);

return;

}

int _tmain(int argc, _TCHAR* argv[])

{

//return 0;

char a;

while(TRUE)

{

cout<<"please input the command:";

cin>>a;

switch (a)

{

case '1':

open();

cout<<"command confirmed"<<endl;

break;

case '2':

close();

cout<<"command confirmed"<<endl;

break;

case '3':

exit(0);

break;

default:

cout<<"wrong command"<<endl;

}

}

}

  • 上一篇:ASP代碼加密工具的最新版本
  • 下一篇:如果修改壹下壹個網頁遊戲的源碼再開服,賺錢了算犯法嗎?多嚴重?謝謝,,
  • copyright 2024編程學習大全網