防止AddString(某些进程)到组合框MFC

时间:2013-01-31 02:31:14

标签: c++ mfc combobox

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

1 个答案:

答案 0 :(得分:2)

我认为你不能使用:

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

使用以下代码:

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

比较两个文字时,你不能使用像=那样的二元运算符,它会比较两个文字的地址,显然它们的地址在大多数情况下会有所不同,在你的情况下,文字{{1}存储在程序的某些静态数据部分中,它不等于堆栈中本地存储的进程名称。