InnoSetup には、プログラムが既に使用されているかどうかを知るための関数 "FindWindowByClassName" があります。私の場合、InnoSetup アップデートを実行する前に wpf アプリケーションが使用中かどうかを知りたいのですが、wpf アプリケーションのクラス名を知る方法がわかりません。アプリケーションで Spy++ を使用する場合、クラス名は次のとおりです。
HwndWrapper[MuProgram.exe;;1120a18a-2e29-4e19-8653-939c99b505c2]
ご覧のとおり、私のクラス名には GUID があり、この GUID は起動するたびに変更されます。しかし、いずれにせよ、InnoSetup を (デバッグ モードで) 実行すると、このクラス名を使用すると、FindWindowByClassName 関数は 0 を返します。
FindWindowByClassName('HwndWrapper[MyProgram.exe;;1120a18a-2e29-4e19-8653-939c99b505c2]'); // returns 0
「MyProgram.exe」のみを使用しようとしましたが、関数は常に 0 を返します (アプリケーション「MyProgram.exe」はテスト中に起動されます)。この問題を解決するアイデアはありますか? wpf コードでクラス名を設定できますか?