AI一键封装的进程名取ID.一次成功无错
<火山程序 类型 = "通常" 版本 = 1 />包 火山.程序
类 启动类 <公开 基础类 = 窗口程序类>
{
变量 主窗口对象 <类型 = 我的主窗口>
方法 启动方法 <公开 类型 = 整数>
{
主窗口对象.创建主窗口 ()
调试输出 (进程工具类.取进程PID ("Weixin.exe"))
返回 (1)
}
}
# ===
类 我的主窗口 <基础类 = 窗口 注释 = "样例主窗口" @视窗.布局 = "client_size = \"500, 300\"" 标题 = "我的主窗口">
# ===
类 进程工具类 <公开 @视窗.外部头文件 = "<TlHelp32.h>">
{
方法 取进程PID <公开 静态 类型 = 整数 注释 = "通过进程名获取对应的进程ID,未找到返回0" @禁止流程检查 = 真>
参数 进程名 <类型 = 文本型 注释 = "提供所要查找的进程名称,如:notepad.exe">
{
@ DWORD dwPID = 0;
@ HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
@ if (hSnapshot != INVALID_HANDLE_VALUE)
@ {
@ PROCESSENTRY32W pe32 = {0};
@ pe32.dwSize = sizeof(PROCESSENTRY32W);
@ if (Process32FirstW(hSnapshot, &pe32))
@ {
@ do
@ {
@ if (_wcsicmp(pe32.szExeFile, @<进程名>.GetText()) == 0)
@ {
@ dwPID = pe32.th32ProcessID;
@ break;
@ }
@ } while (Process32NextW(hSnapshot, &pe32));
@ }
@ CloseHandle(hSnapshot);
@ }
@ return dwPID;
}
}
这么简单的命令咋会错呢,不过也有考虑不周的地方,因为同进程名会有多个进程ID,你这个只返回第一个。 Xelloss0618 发表于 2026-4-9 08:40
这么简单的命令咋会错呢,不过也有考虑不周的地方,因为同进程名会有多个进程ID,你这个只返回第一个。 ...
其实大部分情况下, 都是取的没有同名的进程, 建议piv也加一个. 每次用piv取进程ID, 还有加一个数组变量很麻烦
页:
[1]