两个程序A和BB程序不是我写的,B程序上有一个按钮A程序是我自己写的,我要发让A程序给B程序发送一个点击按钮的消息请问有没有可能实现?如果有可能实现,A程序应该怎么写?前提是:不能修改B程序代码,因为我不会,也不必要搞得这么复杂。
谢谢回答问题的朋友

解决方案 »

  1.   

    可以是可以, 你只要知道B程序中按钮的ID,你发个WM_COMMAND就可以了.
    如何知道ID?使用exescope查看资源中的对话框,然后写下按钮的ID.然后向B程序的对话框句柄发送WM_COMMAND
      

  2.   

    我是这么写的:HWND hwnd = ::FindWindow(NULL,"Dict");
    if(NULL==hwnd)
    AfxMessageBox("error");
    else
    ::SendDlgItemMessage(hwnd,0x3EE,WM_COMMAND,0,0);
    //或::SendDlgItemMessage(hwnd,0x3EE,BN_CLICKED,0,0);不知道这么写对不对。但是这样没有效果,窗口ID是通过spy++查到的。和exescope查到的结果一样。还有另外一种方式我也试过了:
    HWND hwnd = ::FindWindow(NULL,"Dict");
    if(NULL==hwnd)
    AfxMessageBox("error");
    else
    {
    HWND hBtn = GetDlgItem(hwnd,0x3EE);
    ::SendMessage(hBtn,WM_COMMAND,0,0);//或::SendMessage(hBtn,BN_CLICKED,0,0);
    }PostMessage也试过了,也不行不知道我上面写的代码是否错误。
    谢谢大家了。
      

  3.   

    首先,WPARAM wParam=(WPARAM)0x3EE;//让LOWORD(wParam)==0x3EE,其他方法也可以。
    SendMessage(窗口句柄,WM_COMMAND,wParam,0)
    这个应该可以吧!