UIA

 

Imports System.Windows.Automation

Module qqmusic


    Public Function QQMusicPlay()
        Dim p1() As Process = Process.GetProcessesByName("QQMusic")
        Dim qqhwnd As IntPtr
        If p1.Count > 0 Then
            qqhwnd = p1(0).MainWindowHandle()
            Debug.Print(qqhwnd)

        Else
            Dim p2 As Process
            p2 = Process.Start("F:\Program Files (x86)\tencent\qqmusic\QQMusic.exe")
            qqhwnd = p2.MainWindowHandle

        End If


        Dim uia As AutomationElement = AutomationElement.FromHandle(qqhwnd)
        '倎

        '倆
        Dim play As AutomationElement = uia.FindFirst(TreeScope.Descendants, New PropertyCondition(AutomationElement.NameProperty, "倎")) '播放
        If Not play Is Nothing Then
            UiaClick(qqhwnd, play)
        End If


    End Function


    Public Function QQMusicPause()
        Dim p1() As Process = Process.GetProcessesByName("QQMusic")
        Dim qqhwnd As IntPtr
        If p1.Count > 0 Then
            qqhwnd = p1(0).MainWindowHandle()
            Debug.Print(qqhwnd)

        Else
            Dim p2 As Process
            p2 = Process.Start("F:\Program Files (x86)\tencent\qqmusic\QQMusic.exe")
            qqhwnd = p2.MainWindowHandle

        End If


        Dim uia As AutomationElement = AutomationElement.FromHandle(qqhwnd)
        '倎

        Dim pause As AutomationElement = uia.FindFirst(TreeScope.Descendants, New PropertyCondition(AutomationElement.NameProperty, "倆")) 'pause
        If Not pause Is Nothing Then
            UiaClick(qqhwnd, pause)
        End If




    End Function



    Private Function UiaClick(qqhwnd As IntPtr, element As AutomationElement)
        Dim RECT0 As Windows.Rect = element.Current.BoundingRectangle()
        'SetForegroundWindow(hwnd)

        Dim ClienRect As Module1.RECT
        GetWindowRect(qqhwnd, ClienRect)
        Dim LPARAM As Int32 = (RECT0.Left - ClienRect.Left + 10 + (RECT0.Top - ClienRect.Top + 10) * (65536))

        SendMessage(qqhwnd, WM_LBUTTONDOWN, 1, LPARAM)
        'Threading.Thread.Sleep(500)
        SendMessage(qqhwnd, WM_LBUTTONUP, 1, LPARAM)
    End Function

End Module

 

發佈了52 篇原創文章 · 獲贊 15 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章