findWindow的用法(并向记事本插入值)

来源:互联网 发布:php自定义加密 编辑:程序博客网 时间:2024/06/05 20:39

    Dim ChildHwnd As Long          '记事本文本框的句柄

    Private Const VK_A = &H9     '插入的字符

    Private Const WM_KEYDOWN = &H100 
    Private Const WM_KEYUP = &H101
    Private Const WM_CHAR = &H102

 

    Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

    Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

    

    '第一种方式 类名为空 通过标题找

    Dim Hwnd As Long
    Hwnd = FindWindow(vbNullString, "test.txt - 记事本")  '此标题必须是全名
    MsgBox Hwnd
   

   '第二种方式 标题为空 通过类名找
   ' Dim NotepadHwnd As Long
    'NotepadHwnd = FindWindow("notepad", vbNullString)
   ' MsgBox NotepadHwnd
   
    '得到窗口类名为Edit的窗口句柄
    ChildHwnd = FindWindowEx(Hwnd, 0, "Edit", vbNullString)
    MsgBox ChildHwnd
   
    PostMessage ChildHwnd, WM_KEYDOWN, VK_A, MakeKeyLparam(VK_A, WM_KEYDOWN) '按下A键
    PostMessage ChildHwnd, WM_CHAR, Asc("9"), MakeKeyLparam(VK_A, WM_KEYDOWN) '输入字符A
    PostMessage ChildHwnd, WM_UP, VK_A, MakeKeyLparam(VK_A, WM_UP)  '释放A键