我有代码女巫将当前的工作进程添加到组合框中,我想要排除名称为svchost.exe的所有进程
if (Process32First(hSnap, &proc))
{
pComboBox->AddString(proc.szExeFile);
while (Process32Next(hSnap, &proc)){
if (proc.szExeFile != L"svchost.exe")
pComboBox->AddString(proc.szExeFile);
}
}
我尝试使用该代码,但它根本不起作用。
如何排除所有svchost.exe进程?
答案 0 :(得分:2)
我认为你不能使用:
if (proc.szExeFile != L"svchost.exe") {...}
使用以下代码:
if (0!=wcscmp(proc.szExeFile, L"svchost.exe")) {...}
比较两个文字时,你不能使用像=
那样的二元运算符,它会比较两个文字的地址,显然它们的地址在大多数情况下会有所不同,在你的情况下,文字{{1}存储在程序的某些静态数据部分中,它不等于堆栈中本地存储的进程名称。