2011-01-09 17 views
0

WindowsでC#プログラミング言語を使用して頻繁に使用するプログラムリストを作成するために、ユーザーが開いたプログラムとファイルをすべてログに記録します。助けてくれてありがとう。Windows OSイベントを捕まえるには? (C#)

+1

開始されたすべてのプロセスを追跡できます。http://stackoverflow.com/questions/1986249/c-process-monitor –

+0

@Adrian Faciu、そのソリューションにはパフォーマンスに影響があります – HABJAN

+1

@HABJAN:おそらく、あなたが提案したポーリング方法と同じようにパフォーマンスが悪い –

答えて

1

これを達成する簡単な方法はありません。 Windowsはそのようなイベントを提供しません。あなたは何ができるか

は次のとおりです。

  1. 開かれているすべてのウィンドウや実行中のプロセススルー秒ループの各夫婦との情報を取得します。あなたからのロジックを使用することができますウィンドウの列挙の場合:あなたはなど。KERNEL32でのTerminateProcessを引っ掛け、タスクマネージャにDLLを注入するなどの方法を使用することができますhttp://www.codeproject.com/KB/cs/WindowTabifier.aspx

  2. ..関連サンプル:http://www.codeproject.com/KB/threads/taskex.aspx

0
Process[] processlist = Process.GetProcesses(); 

foreach(Process theprocess in processlist){ 
Console.WriteLine(“Process: {0} ID: {1}”, theprocess.ProcessName, theprocess.Id); 
} 

これにより、現在実行中のプロセスの詳細が表示されます。このリストを定期的に確認して新しいアプリケーションを起動することはできません。

関連する問題