質問

ここにアイデアがあります、私はサービスを作りたいですか?起動する特定のプログラムを探し、特定の条件が満たされない限りそれを禁止します。

今週中にプレイを止めたいゲームがあるとしましょう。したがって、金曜日/土曜日/日曜日以外の日に起動すると、インターセプトおよびキャンセルされます。これはC#で可能ですか?

私が探している主なものは、プログラムの起動をキャッチする方法です。残りは簡単なはずです。

役に立ちましたか?

解決

まあ、あなたはあなたが望むプロセス名(GetProcessesByName())を探してそれらを殺すことによって、どのプログラムが実行されているかを確実に決定することができます。

Process[] processes = Process.GetProcessesByName(processName);
foreach(Process process in processes)
{
   process.Kill();
}

実行したくないもののリストを作成し、時間のチェック(または基準を満たすもの)を実行してから、リストをたどることができます。私はテストのために一度このようなことをしましたが、それは十分に機能します。

他のヒント

ここでは特にC#については知りませんが、これを達成できる理由の1つは(これは危険な方法です)、イメージファイル実行オプション( http://blogs.msdn.com/junfeng/archive/2004/04/28/121871.aspx )レジストリ内。インターセプトに関心のある実行可能ファイルについては、デバッガーオプションを設定し、デバッガーで使用される小さなアプリケーションを作成してから、これらの呼び出しを本質的にフィルター処理できます。実行を許可する場合は、プロセスを起動します。私はこれを試みたことがありませんが、あなたが望むことをすることができるようです。

または、プロセスの起動に反応して終了する場合は、ProcessWatcher( http://weblogs.asp.net/whaggard/archive/2006/02/11/438006.aspx )そしてプロセス作成イベントをサブスクライブしてから閉じます必要に応じてダウン。ただし、これは最初のようなプロアクティブなアプローチではなく、よりリアクティブなアプローチです。

起動時にキャッチできるかどうかはわかりませんが、ウィンドウのリストでプログラムを探してみて(ENUM_WINDOWSだったか覚えていないでしょう)、表示されたらすぐにシャットダウンしてください。 。

AutoItでこれを行うこともできます!

Petzoldをドラッグして、ウィンドウを楽しんでください...

編集:アクティブなプロセスをリストする方法については、ソースのsysinternalsを確認してください。ループでこれを行うと、プログラムの起動時にキャッチできます。公式サイトにはまだソースがあるとは思いませんが、どこかにあるはずです...

Hrmは、スタートアップをインターセプトするのではなく、サービスが何らかの方法で実行可能ファイルを妨害する可能性があります(つまり、権限を不正に変更したり、EXEの名前を変更したり、EXEを弱い意志でscるようなものに置き換えたりします)。

それでも十分でない場合は、次のアプローチのいずれかを試すことができます:

http://www.codeproject.com/KB/system/win32processusingwmi.aspx

http://msdn.microsoft.com/en-us/magazine /cc188966.aspx

常にフックがあります。 .netライブラリではサポートされていませんが、いつでもwin32 dllをラップできます。ここに素晴らしい記事があります: http://msdn.microsoft。 com / sv-se / magazine / cc188966(en-us).aspx

これは低レベルのプログラミングであり、コードを移植可能にする場合はフックを使用しません。

このアプリは、オレンジランプからの殺害プロセス
私は著者ではありません。

必ずしも起動プログラムを傍受する必要はありません。 「プログラム起動マネージャー」を作成できます。あなたのためにプログラムを起動するアプリ(ホワイトリストに登録されている場合)。アプリを作成したら、アプリケーションショートカットを修正して、適切なパラメーターを使用してスタートアップマネージャーを指すようにします。

アプリケーションを無効にする必要がある場合は、レジストリを編集してデバッガをそのアプリケーションに自動的にアタッチします。デバッガが存在しない場合、ウィンドウはエラーを表示して救済します。

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Image File Execution Options]がキーです。MS記事 http://support.microsoft.com/default.aspx?kbid=238788 で詳細をご覧ください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top