这个播放器的类名一样 怎么找句柄呀 vb可以用进程id吗
SendMessage 可以 想sendkeys那样对活动窗口,对句柄发送快捷键码
这个播放器的类名一样 怎么找句柄呀 vb可以用进程id吗
SendMessage 可以 想sendkeys那样对活动窗口,对句柄发送快捷键码
我用VB可以做到用路径,或者PID列举所有的句柄。
代码:
'//////////////////////////////////////模块////////////////////////////////
Option Explicit Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Dim IfPid As Long Private Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Long Dim Pid1 As Long Dim wText As String * 255 GetWindowThreadProcessId hwnd, Pid1 If IfPid = Pid1 Then GetWindowText hwnd, wText, 100 Form1.List1.AddItem "句柄:" & hwnd & " 标题:" & wText End If EnumWindowsProc = True End Function Public Sub Find_Window(ByVal Pid As Long) IfPid = Pid EnumWindows AddressOf EnumWindowsProc, 0 End Sub '////////////////////////////窗体////////////////////////////////////
Private Sub Command1_Click() List1.Clear Find_Window Val(Text1.Text) End Sub
Private Sub Form_Load() Text1.Text = "" Command1.Caption = "枚举窗口" End Sub '///////////////////////////控件//////////////
建立一个COMMAND1和LIST1和TXET1
使用:
在TEXT中输入PID,按COMMAND1,LIST中就列出所有句柄
如果需要如何获取PID的话就加我Q或者留邮箱。QQ 363488415
千千静听的句柄貌似不好获取,因为标题会变,只有用SPY++获取主窗体类名在用FINDWINDOW这个API获取句柄 一些子窗口的句柄还是要用句柄枚举来获取 另外VB是可以获取到进程ID的 首先获取窗体句柄然后通过openprocess这个函数返回其进程的句柄,再通过进程句柄用getwindowthreadprocessid这个API函数获取进程的ID即可
只要获取到句柄就能用SendMessage发送快捷键 不过这里建议用PostMesaage,具体请自行查看API手册