1

KnightOnlineという名前のゲームの実行可能ファイルを強制終了し、ユーザーによる実行を拒否したいと思います。私が使用しているもの:

Process.Start("taskkill.exe", "/f /im kol.exe");

ただし、コマンドウィンドウが表示されています。コマンドウィンドウを非表示にするにはどうすればよいですか、または不要なプログラムを拒否するための別の専門的で悪名高い方法はありますか?

編集: 解決策として、ホストを編集し、ゲームのログインページをブロックしました。

4

4 に答える 4

4

専門的な方法は、実行中のプログラムによって競合が発生する可能性があることをユーザーに知らせ、続行する前にプログラムを閉じるようにユーザーに依頼することです。

「お詫びします」と言わずに黙って殺すのは悪です。

于 2010-08-25T12:36:07.933 に答える
4

そもそもユーザーがプログラムを起動できないようにしたほうがいいのでしょうか。

Windows 2000以降(XP、Vista、「Seven」)にはソフトウェア制限ポリシーがあります-プログラムのホワイトリストまたはブラックリストを設定できます。ホワイトリストの場合は、リストされているプログラムのみを開始できますが、ブラックリストの場合は、リストされているプログラムを除くすべてのプログラムが許可されます。このチェックはOSレベルで行われ、バイパスすることはできません(管理者による場合を除く)。例については、たとえばこれを参照してください。

(ブラックリストは、実行可能ファイルの名前を変更すると再度実行できるため、かなり効果がありません。ホワイトリストは、修正と管理にさらに手間がかかりますが、ほとんどのユーザーは最大20個のアプリとシステムサービスを必要とします)

注:Windowsのすべてのバージョンで管理者がグループポリシーを設定できるわけではありません。IIRCでは、WindowsXPHomeまたはVistaHomeBasicでこれを行うことはできません。

また、ユーザーはユーザーになります。ローカルゲームをブロックすると、ユーザーはFlashブラウザゲームをプレイします。Flashをブロックすると、ブラウザ内のJavascriptゲームがプレイされます。それをブロックすると、彼らは純粋なHTMLテキストアドベンチャーゲームをプレイします(他のほとんどのWebサイトが機能するのを偶然にブロックしたことに当然腹を立てています)。

それでもブロックすると、ユーザーはコンピューターを放棄して喫煙したり、カードを持ってきてソリティアIRLをプレイしたり、仕事を避けるための他の無数の方法を見つけたりします(オフィスユーザーについて話していると仮定します)-それは勝利ではありませんまた; (コメントからわかるように)ユーザーをコンピューターから離そうとしている場合を除きます。

于 2010-08-25T12:41:45.250 に答える
2

Process.Killを使用して、別のプロセスを強制終了できます。

foreach (var process in Process.GetProcessesByName("kol"))
{
    process.Kill();
}
于 2010-08-25T12:36:18.293 に答える
2

非表示のウィンドウでプロセスを実行する場合は、これを試してください。

var processInfo = new ProcessStartInfo() 
                      { 
                         Arguments = "/f /im kol.exe", 
                         FileName = "taskkill.exe", 
                         WindowStyle = ProcessWindowStyle.Hidden 
                      };

Process.Start(processInfo );
于 2010-08-25T12:40:17.577 に答える