我知道用API Hook是肯定可以的,Hook住MessageBoxA和MessageBoxW这两个函数,让它直接返回ID_YES就可以了。
但觉得SendKeys应该也行的。我再试试。

解决方案 »

  1.   

    用API Hook找到所有属于该程序的窗口、对话框,然后一个一个的关闭
      

  2.   

    对不起,我很菜.HOOK是什么?能举个例子么?
      

  3.   

    使用PostMessage加SendKeys:
    打开一个Notepad的窗口,随便输入一些字符
    Form中的代码:Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As LongConst SW_SHOWNORMAL = 1
    Const WM_CLOSE = &H10Private Sub Form_Load()
        
        Dim WinWnd As Long, Ret As String, RetVal As Long, lpClassName As String
        
        Ret = "Untitled - Notepad"
        WinWnd = FindWindow(vbNullString, Ret)
        If WinWnd = 0 Then MsgBox "Couldn't find the window ...": Exit Sub
        
        ShowWindow WinWnd, SW_SHOWNORMAL
        
        
        PostMessage WinWnd, WM_CLOSE, 0&, 0&
        
        SendKeys "{TAB}"
        SendKeys "{ENTER}"
    End Sub
      

  4.   

    能不能把你的程序email给我,我试过空挡接龙,用sendkeys可以的,但是要求空挡接龙处于激活状态。[email protected]
      

  5.   

    好酷,我也对hook很感兴趣, 请多多指教
      

  6.   

    to NowCan:
    处于即或状态?
    如果某人正在玩,可以吗?(自动给他关闭)
    to 诺亚方舟:
     可是我的SETDKEYs 执行不了呀.