请问:
    怎么向一个程序(不知道其中的接口)发送WM-KEYDOWN消息。
    sendmessage()可以吗??
    还有别的方法吗??
谢谢!

解决方案 »

  1.   

    用FindWindow()找到这个窗口的句柄,试试
    不知道行不行
    没做过
      

  2.   

    用HOOK应该也可以,不过就是麻烦了小小~
      

  3.   

    你说的是在不同进程之间发送消息吗?使用PostThreadMessage试试,不过我没信心:(
      

  4.   

    SendMessage(hwnd,WM_KEYDOWN,VK_A,?)
    第四个参数该怎么用啊?
      

  5.   

    我用sendmessage(hwnd,WM-CLOSE,0,0)可以把一个程序关掉,
    但用sendmessage(hwnd,WM-KEYDOWN,VK-A,0)却不能传到程序中的edit控件里,这是为什么呢??
      

  6.   

    不好意思,这几天没上来。
    我觉得是这样,WM-CLOSE消息由程序接受,它就关闭自己。
    但是键盘消息没有指定是发送给谁的,就象你在一个对话框上按键盘一样,消息没有起作用,最后被丢掉了。应该在第四个参数,LPARAM中指定编辑框的ID,如果这个程序是你自己写的,可以在RESOURCE。H中看到编辑框的ID,通常是100x,把这个作为消息传递的参数就可以了。直接把IDC_EDIT1作为参数是没有用处的,因为假如发送消息并不在接受消息的同一程序内的话,这个ID定义是无法被识别的。当然你可以在一个对话框内部试验一下。
    对于其他程序,比如一个对话框,我能想到的方法是,用FINDWINDOW找到目标程序,用GETDLGITEM找到目标编辑框,用GETSAFEHANDLE得到编辑框句柄,对其发送键盘消息。我并没有实验过,不知道行不行。
      

  7.   

    只是键盘单击消息吗?那么
    SendMessage(hWnd,WM_KEYDOWN,VK_F5,0);  //这样就可以了你说的不好使是不是目标的窗口函有子窗口你发的目标句柄8对啊,用spy++查查看啊~