2016-04-05 48 views
0

OpusAppクラス名のトップレベルウィンドウを検索してインストールを続ける前に、開いているWordウィンドウを閉じるInnoSetupインストーラスクリプトがあります。また、スクリプトは、OpusAppクラス名を持つ非表示のWordウィンドウを開くため、誤ってOutlookの作成ウィンドウを検出して閉じます。 (私はWinListerユーティリティを使用して、開いているウィンドウのクラス名を調べます)ウィンドウクラス名を調べてOutlookとWordを区別する

「実際の」Wordウィンドウと非表示のWordウィンドウを持つOutlook作成ウィンドウを区別する方法はありますか?インストーラスクリプトから余分なツールを呼び出す必要がある場合は、おそらくそれを処理できます。ところで

Hidden Word windows opened by Outlook, as seen by WinLister

私は私のインストーラがOpusAppウィンドウを閉じてみましょうする場合、は、Outlookメール作成ウィンドウはつまり、ユーザーは任意のより多くのテキストを表示し、編集することはできません(クラッシュしてしまいますが、テキストが失われることはありません) - Wordアドインをインストールすることの望ましくない副作用!

+1

開いているアプリケーションを閉じるための試行はお勧めできません。 Word 2016で動作しても、ウィンドウクラス名が "OpusApp2"なので、Word 2017では機能しないことがあります。 Wordが開いているかどうかを検出してから、Wordを閉じてから続行するようにユーザーに依頼します。多くのインストーラがこのようにしています。 –

+0

@MichaelWalzよく考えて、私はそれについて考えるでしょう。注:Officeのクラス名は、PowerPointを除いて何年も変わっていないようです。もちろん、あなたは正しいのですが、MSはいつでもそれを変更することができます。 – bovender

+0

なぜあなたはそれを必要としますか? Wordにファイルがロックされている場合、Inno Setupはこれを検出して自動的にWordを閉じます。 –

答えて

1

特定のキャプションまたはクラス名のウィンドウを探すのではなく、winword.exeプロセスを探します。

+0

それは私には合理的だと思う。 –

関連する問題