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")) {...}

2つのリテラルを比較する場合、2つのリテラルのアドレスを比較する のような二項演算子を使用することはできません=.ほとんどの場合、それらのアドレスは異なるようです.あなたの場合、リテラルL"svchost.exe"はプログラムの静的データセクションに格納されます.スタックにローカルに保存されているプロセス名とは異なります。

于 2013-01-31T02:38:59.060 に答える