2

別のアプリケーションからのモーダルフォーム(ポップアップ)が表示されたらすぐに閉じます。これをVB.NETから実行したいのですが、C#での提案は簡単に翻訳できるはずです。

モーダルポップアップのキャプションは長くてユニークなので、アプリでハードコーディングできます。私がやりたいのは、ユーザーがフォームの閉じる( "X")ボタンをクリックするか、フォームのデフォルトのタブオーダー0ボタンをクリックすることをシミュレートすることです。どちらでも動作します。

タイトルバーのキャプション以外に、モーダルポップアップに関する詳細情報が必要な場合がありますか?いずれにせよ、そのモーダルフォームの一意の識別子として使用しても安全です。また、ポップアップを閉じる最初のイベントが発生するとすぐに、そのコードでチェックを終了する必要があります。

些細なことだと思いますが、すぐにわかる情報はありません。Microsoftは、 EndDialog()の代わりにDestroyWindow(WM_CLOSE )を呼び出すため、モーダルポップアップに送信するべきではないと言っていますが、正直なところ、「ウィンドウ」への「送信」が何を意味するのかさえわかりません= /WM_CLOSE

少し教祖を共有してくれてありがとう!:D

PS:これはAutoHotkeyでは些細なことかもしれません。私はそれを知らずに足が不自由に感じます、私はそれが必要であることを知っています。

4

1 に答える 1

1
IntPtr handle = FindWindow(null, "Dialog_Title");
SendMessage(handle, WM_NCDESTROY, 0, 0);

これでダイアログが閉じます

于 2009-12-16T19:58:59.070 に答える