我想做一个自动按某程序的按钮的小程序.
我已经找到了那个按钮的句柄,现在想自动按那个按钮,不用模拟鼠标,用模拟键盘的方式,请问怎么实现?
我是不菜鸟.

解决方案 »

  1.   

    'hWindowEx为按纽句丙,
    Private Const WM_KEYDOWN = &H100
    Private Const VK_RETURN = &HDPostMessage hWindowEx, WM_KEYDOWN, VK_RETURN, 0
    '或 SendMessage hWindowEx, WM_KEYDOWN, VK_RETURN, 0
      

  2.   

    可是还是不行呀,我能够确定我找到的句柄是正确的.可是就是不能让那个BUTTON自动按下.请问各们还有什么办法吗?
      

  3.   

    ' 启动一个计算器,下面的代码自动按“6”Option ExplicitPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private 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
    Private Declare Function GetDlgCtrlID Lib "user32" (ByVal hwnd As Long) As LongPrivate Const WM_COMMAND = &H111
    Private Const BN_CLICKED = 0Private Sub Command1_Click()
        Dim Handle As Long
        Dim ParentHandle As Long
        ParentHandle = FindWindow("SciCalc", "计算器")
        Handle = FindWindowEx(ParentHandle, 0&, "Button", "6")
        SendMessage ParentHandle, WM_COMMAND, (BN_CLICKED * &H10000) Or GetDlgCtrlID(Handle), Handle
    End Sub