0

我有代码女巫将当前工作进程添加到组合框,我想排除所有名称为: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 进程?

4

1 回答 1

2

我认为你不能使用:

 if (proc.szExeFile != L"svchost.exe") {...}

改用下面的:</p>

  if (0!=wcscmp(proc.szExeFile, L"svchost.exe")) {...}

比较两个文字时,您不能使用二进制运算符 like =,它将比较两个文字的地址,显然它们的地址在大多数情况下会有所不同,在您的情况下,文字L"svchost.exe"存储在程序的某个静态数据部分中,这将不等于本地存储在堆栈中的进程名称。

于 2013-01-31T02:38:59.060 回答