10

次のように、C#でそれを行う方法を探しています:

foreach (Process proc in Process.GetProcessesByName("cheatengine-x86_64"))
{
    proc.Kill();
}

私はこのステートメントを使用していますが、チートエンジンやチートエンジン-x86 など、さまざまなバージョンのプログラムがあります。名前を「チート」または単に「チート」で開始して、これらのいずれかを閉じたいと思います。古いバージョンは避けてください。

4

5 に答える 5

14
        System.Diagnostics.Process.GetProcesses()
                     .Where(x => x.ProcessName.StartsWith("cheate", StringComparison.OrdinalIgnoreCase))
                     .ToList()
                     .ForEach(x => x.Kill());
于 2013-01-31T18:07:11.017 に答える
6

各プロセス名を繰り返し処理し、正規表現と照合して、一致する場合は強制終了できます。

Regex regex = new Regex(@"cheate.*");
 foreach (Process p in Process.GetProcesses(".")){
    if(regex.Matches(p.ProcessName))
      p.Kill();
 }

このようなもの。

これの利点は、特定の正規表現で開始または終了するプロセスを強制終了できることです。

于 2013-01-31T18:01:50.603 に答える
3

ここから適応: http://www.howtogeek.com/howto/programming/get-a-list-of-running-processes-in-c/

using System.Diagnostics;


Process[] processlist = Process.GetProcesses();

foreach(Process theprocess in processlist)
{

    if(theprocess.ProcessName.StartsWith("cheat");
         theprocess.Kill(); 
}

これは大まかなアイデアであり、プロセスに合わせたい任意の方法を使用できます。大文字と小文字を区別しないものをお勧めしますが、誤検知には十分注意してください。あなたのプログラムが閉じてはならないものを閉じてしまったら、私は満足できません。

于 2013-01-31T18:07:04.457 に答える
1

Linq を使用Process.GetProcesses()して、殺したいものをフィルタリングします。

于 2013-01-31T18:03:26.690 に答える