// 10-winAPI調用外部可執行程序.cpp : 定義控制檯應用程序的入口點。
//
#include "stdafx.h"
#include <Windows.h>
#include <Tlhelp32.h>
#include <comdef.h>//字符串類型轉換
using namespace std;
int main()
{
//啓動有一個外部程序
//system("start C:\\Users\\Administrator\\Desktop\\acv\\10_9_a.exe");//父子進程分離,創建後互不影響
WinExec("C:\\Users\\Administrator\\Desktop\\acv\\10_9_a.exe", SW_SHOWNORMAL);//子進程繼承父進程
//查找外部指定程序
DWORD needstopProID=0;
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(pe32);
HANDLE hSnapshot_proc = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapshot_proc != INVALID_HANDLE_VALUE)
{
BOOL check = Process32First(hSnapshot_proc, &pe32);
while (check)
{
_bstr_t b(pe32.szExeFile);
const char* lpchar = b;
if (strcmp("10_9_a.exe", lpchar)==0)
{
needstopProID = pe32.th32ProcessID;
printf("id:%d name :%s\n", pe32.th32ProcessID, lpchar);
}
check = Process32Next(hSnapshot_proc, &pe32);
}
}
Sleep(3000);
//通過進程id 拿到進程句柄 結束進程
if (needstopProID != 0)
{
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, needstopProID);
if (hProcess == NULL)
{
printf(" There is no process to stop");
return 0;
}
else
{
TerminateProcess(hProcess, 0);
}
}
else
{
printf(" There is no process to stop");
}
Sleep(3000);
return 0;
}
WindowsAPI實現遠程調啓exe可執行程序,C++實現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.