実現したいこと
まえに質問して、「ダイアログ」を1個のオブジェクトにしました。
[BluePrism]IE11のダイアログをspyできません。
やりたいことは
- 確認メッセージのダイアログをオブジェクトにする(これはできた、やりかたは上の質問に書きました)
- ファイルアップロードのダイアログをオブジェクトにする(今詰まっているのこれ)
- 通知バーをオブジェクトにする(まだ手付かず)
です。
発生している問題
今詰まっているのは、上記で3個挙げた項目のうちの、2個目の「ファイルアップロードのダイアログ」です。
こういうやつ
通知バーは、VBAでもWindowsのアクセシビリティ機能を使って書いたので、おそらくBPでもその方法じゃないと無理かなあと思っています。
でもファイルアップロードのダイアログは、ウィンドウハンドルが確認メッセージと同じ#32770で
(そしてVBAでも同じように書いて扱っていたので)
VBA
1Private Declare PtrSafe Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As Long 2Declare PtrSafe Function FindWindow Lib "User32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 3 4Sub ClickPopup() 5 6 Dim hwnd As Long 7 hwnd = FindWindow("#32770", "Web ページからのメッセージ") 8 9 If hwnd <> 0 Then 10 PostMessage hwnd, &H111&, vbOK, 0 11 End If 12 13End Sub
ファイル選択ダイアログは、上のFindWindowのところが
VBA
1FindWindow("#32770", "アップロードするファイルの選択")
とかになってあとは同じ感じで……。
なので、ファイルアップロードも確認メッセージと同じように書けばAttachできるのではないか
と予想したのですが、Attachできません……。
赤くマルで囲ったところのチェックは、つけてもつけなくてもAttachできないです。
Attchするときも確認ダイアログと同じようにしています。
Attachできなくてエラーになるときのメッセージはこのようです。これってアプリケーションモデラーの設定内容と指定したいものとが違うってことですよね。
text
1System Exception : Failed to perform step 1 in Navigate Stage 'Attach' on page 'Attach' - Target application could not be identified
なんででしょう、確認ダイアログと同じように設定しているのに……同じじゃダメなのでしょうか。
[追記 2019/6/3]
Child Index=o でもダメでした……。
なので、このようにしてAttachしています。Child Indexは1です。
これはたぶん「一番アクティブになっているIEのウィンドウ」をAttachして、その子のダイアログを…ということをしていると思います。
なのでこれの前に、親になるウィンドウをActivateしています。
ダイアログを直接Attachしに行ってない時点でなんだか間違っている気がします……。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/09 08:42
2019/07/09 09:00
2019/10/25 08:07 編集