掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
msgboxで処理が止まらないようにするには?(WebBrowser) (ID:82426)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
GOMAさん お久しぶりです。りんさん こんにちは 最初の質問の意味をとらえ違いしていたのかも知れませんが、私の使用する場面は 以下のような場合に用いています。 概要: 1.アクティブなIEを常に監視し、そのLocationUrlによりコンテキストメニューを 独自のものに置き換える。 2.その中に「選択範囲を翻訳」を言う機能があり、選択部分を外部の翻訳ソフトに 渡し、自動的に翻訳させる。 ここで私が困ったことは、翻訳ソフトの終了時に保存確認のMsgBoxが必ずPopUpし、 いちいちクリックしないと終了できないことです。( 煩わしい!) →これを右上の×ボタンで即終了させたかったのです。 それで、以前紹介したサイトのコードでMsgBoxのPopUpを監視し、現れたら即「はい」 や「いいえ」をクリックさせることを考えました。 使い方は、サイトの例そのもの ですが、 VBのコードの中で 標準モジュールに、紹介サイト中頃の ----Bas module code---- 以下を、適当な名前 (例えばmWatchMsgBox)を付けて保存しておきます。Sub ShowChanges は適当に変更して下さい。 私の場合は、以下のようにしています。 Private Sub ShowChanges(h As Long) Dim sTypePopUp As String, sCaptionPopUp As String, sCaptionParent As String If FindWindowEx(h, 0, "Edit", "") Then sTypePopUp = "InputBox or dialog" Else sTypePopUp = "MsgBox" End If sCaptionPopUp = GetWndText(h) sCaptionParent = GetWndText(GetParent(h)) If sTypePopUp = "MsgBox" And InStr(sCaptionPopUp, "MsgBoxのキャプション") Then Call PostMessage(h, WM_QUIT, 0, 0) End If End Sub そして、私のソフトでは 'txtTranserは翻訳ソフトのFullPath, /t は起動オプション rtn = Shell(txtTranser & " /t", vbNormalFocus) SetTimer hWnd, NV_MYEVENT, 50, AddressOf TimerProc で翻訳ソフトを起動後、タイマー監視しMsgBoxのPopUpされると、 上のShowChangesが呼び出され、MsgBoxにWM_QUITを送っています。 「はい」や「いいえ」をクリックするには、簡単に SendKeys "{TAB}", True SendKeys "{ENTER}", True でやっています。 必要無くなれば、適当なところで KillTimer hWnd, NV_MYEVENT を入れておいて下さい。 ----------------------------------------------------------------------------------- MsgBoxのキャプションを判断することで、色々な場合分けも可能かとは思いますが、 サイトの内容を動的に判断し、それまでに行った処理を変更する場合などは、その判断ロジック が必要で、それをGOMAさん が望んでおられたなら、的はずれな回答でした。 (^_^;)
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.