-1

Project Assistant の [インストール インタビュー] タブで、インストール完了時に起動 .exe を設定しました。正常に動作します。

特定のアプリが開いているという条件で .exe を起動する必要がありました。そこで、プロパティを作成し、FindWindow を使用して、CheckBox をプロパティ = true の場合にチェック済みに設定しました。すべて正常に動作します。

今、チェックボックスを無効にしようとしていますが、hwnd が開いていません...しかし、チェックボックス用に設定または作成されたコントロール ID はありません。2番目のパラメーターにはそれが必要です。

このリンクは示唆しています... MSIGetProperty関数。その関数は、ID ではなくプロパティ値を返します。

_WinSubEnableControl (hwndDlg,?????, 0);

更新:作成したプロパティを使用して ControlCondition で無効にすることができました。コントロール ID を取得する方法を引き続き知りたいです (したがって、組み込み関数 _WinSubEnableControl を使用できます)。

4

1 に答える 1

0

Windows インストーラ ダイアログのコントロールのコントロール ID は、Windows インストーラ自体によって任意に割り当てられます。コントロールを有効または無効にする唯一のサポートされている方法は、見つけたコントロール条件を使用することです。

実際には、ウィンドウを見つけることができ、チェック ボックスのテキストがわかっている場合は、子ウィンドウを列挙することでコントロール ID を簡単に見つけることができます。しかし、メイン ウィンドウを見つけるための公式にサポートされている方法がないため、これはサポートされていません。

于 2015-03-24T11:55:09.227 に答える