掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VBでYouTubeの再生ボタンを押すには (ID:140658)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
大変お世話になっております。 IAccessibleでYouTubeなどのMacromediaFlashPlayerActiveX の再生ボタンなどを操作したくて、ハンドルの取得をしたいと思っておりまして、 前回色々教えて頂き試行錯誤したのですが、どうにもならずに断念しておりました。 その時のURL http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200805/08050033.txt 下記のような方法でMacromediaFlashPlayerActiveXのハンドルを取得しているのですが、 それより子のボタンやプログレスバーのハンドルを取得することができないです。 (IEtitleの内容はインターネットエクスプローラーで YouTubeで動画を再生するページを表示した際のウィンドウタイトルバーのキャプションを入れます。) AccExplorer32.exeで試すとボタンのIDも取得できて、AccExplorer32からボタンを押す動作を 送ることもできるので何とかそのようなことをしたいので、 ハンドルの取得方法を教えて頂けたら幸いです。 手動で座標を指定してMouseイベントでやっていたのですが、 すごく不便なので、この方法を実現したいです。 環境はVB2003 + Framework1.1 + WindowsXP-PRO(SP2)です。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim lngHWND As Integer Dim objAcc As IAccessible Dim IEtitle as String = "YouTube - サンプル動画 - Microsoft Internet Explorer" ListBox1.Items.Clear() Dim h As Integer h = FindWindow(vbNullString, IEtitle) h = FindWindowEx(h, 0, "Shell DocObject View", vbNullString) h = FindWindowEx(h, 0, "Internet Explorer_Server", vbNullString) h = FindWindowEx(h, 0, "MacromediaFlashPlayerActiveX", vbNullString) AccessibleObjectFromWindow(h, OBJID_CLIENT, IID_IAccessible, objAcc) Dim child As Object If objAcc Is Nothing Then ListBox1.Items.Add("(取得失敗)") Else child = objAcc.accNavigate(NAVDIR_FIRSTCHILD, CHILDID_SELF) Do Until IsNothing(child) ListBox1.Items.Add(objAcc.accName(child)) child = objAcc.accNavigate(NAVDIR_NEXT, child) Loop objAcc = Nothing End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ReDim IID_IAccessible.Data4(7) With IID_IAccessible .Data1 = &H618736E0 .Data2 = &H3C3D .Data3 = &H11CF .Data4(0) = &H81 .Data4(1) = &HC .Data4(2) = &H0 .Data4(3) = &HAA .Data4(4) = &H0 .Data4(5) = &H38 .Data4(6) = &H9B .Data4(7) = &H71 End With End Sub Public Structure UUID Dim Data1 As Integer Dim Data2 As Integer Dim Data3 As Integer Dim Data4() As Byte End Structure Public IID_IAccessible As UUID Public Const CHILDID_SELF As Integer = 0& Public Const OBJID_CLIENT As Integer = &HFFFFFFFC Public Const NAVDIR_MIN = &H0 Public Const NAVDIR_UP = &H0 Public Const NAVDIR_DOWN = &H0 Public Const NAVDIR_LEFT = &H0 Public Const NAVDIR_RIGHT = &H0 Public Const NAVDIR_NEXT = &H0 Public Const NAVDIR_PREVIOUS = &H0 Public Const NAVDIR_FIRSTCHILD = &H0 Public Const NAVDIR_LASTCHILD = &H0 Public Const NAVDIR_MAX = &H0 Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hwndParent As Integer, ByVal hwndChildAfter As Integer, ByVal lpszClass As String, ByVal lpszWindow As String) As Integer Public Declare Function AccessibleObjectFromWindow Lib "oleacc" _ (ByVal hWnd As Integer, ByVal dwObjectID As Integer, ByRef riid As UUID, ByRef ppvObject As IAccessible) As Integer よろしくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.