一、函数功能说明
函数名 | 说明 | |
---|---|---|
1 | GetProcessIdFromName() | windows下根据进程名称查找进程,若查到则返回PID,若未查到则返回-2; |
二、代码
说明:根据进程名称获取进程ID
#include <iostream>
#include <windows.h>
#include <TlHelp32.h>
#include <comdef.h>
using namespace std;
long GetProcessIdFromName(const char *name)
{
HANDLE hsnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hsnapshot == INVALID_HANDLE_VALUE)
{
cout << "Create TlHelp32 Error!" << endl;
return -1;
}
PROCESSENTRY32 processer;
processer.dwSize = sizeof(PROCESSENTRY32);
int flag = Process32First(hsnapshot, &processer);
while (flag != 0)
{
_bstr_t processName(processer.szExeFile); //WCHAR字符串转换成CHAR字符串
if (strcmp(processName, name) == 0)
{
return processer.th32ProcessID; //返回进程ID
}
flag = Process32Next(hsnapshot, &processer);
}
CloseHandle(hsnapshot);
return -2;
}
int main()
{
long pid = GetProcessIdFromName("DeepL.exe"); //输入进程名
cout << "DeepL.exe pid : " << pid << endl;
system("pause");
return 0;
}
三、WCHAR 转换为 CHAR
将WCHAR
字符串转换成CHAR
字符串:
#include<comdef.h> //必须包含
const WCHAR* wchar = L"HelloWorld";
_bstr_t bchar(wchar);
const char* cchar = bchar;