0

次のシナリオがあります。プログラムを実行する前に、Windows で実行されている特定のプログラムを検出する必要があります。たとえば、プログラムは LogMeIn が実際にインストールされて実行されているかどうかを知る必要があります。psapi を使用してプロセスを列挙するなどのいくつかのアプローチを使用しました。 .dllですが、プロセス名はインストールおよび構成の段階で変更される可能性があると思うので、これとは関係なく常にプロセスを見つけることができるようにする方法がわかりません。次のコード スニペットに基づくいくつかのテストを使用しています: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682623(v=vs.85).aspx

もう 1 つの方法は、レジストリ コードを使用することですが、それも変更可能であり、標準ではありません。

4

1 に答える 1

0

追跡したいプログラムがウィンドウ化されており (ウィンドウが表示されているため)、ウィンドウのタイトルが予測されるものである場合。EnumWindows関数を使用できます。タイトルが変わっても、別の実行でも同じ単語がいくつかある場合は、正規表現を使用して、名前が目的のものと一致するかどうかを確認できます。例:

LogMeIn を実行中...

2012 年 3 月 27 日: LogMeIn

これら 2 つの文字列は共通の明示的な名前を共有しているため、それが探しているものであることがわかります。この推論を EnumProcess メソッドに適用できます

于 2012-03-27T16:10:50.350 に答える