各位大虾,比如我现在想对另外一个程序的某个Button、Menu、EDIT等控件进行相关的操作,用VC能实现吗,该怎样实现呢。

解决方案 »

  1.   

    对于按钮和菜单,向其父窗口发送WM_COMMAND消息即可触发该按钮的动作,而edit则发送WM_SETTEXT/WM_GETTEXT来设置和获取其文本
      

  2.   

    看楼主的意思大概是想做类似于QQ尾巴病毒的东西吧。最好的办法就是插入 钩子 dll
      

  3.   

    呵呵,那能去做什么病毒东西啊,只是现在做个案子需要先调用另外一个程序进行配置,想编程来代替手工配置,但是在发送消息的时候,我怎么老是发送不成功呢。
    WM_COMMAND 
    wNotifyCode = HIWORD(wParam); // notification code 
    wID = LOWORD(wParam);         // item, control, or accelerator identifier 
    hwndCtl = (HWND) lParam;      // handle of control 
    我用FindWindows和EnumChildWindows获得Button的Handle,但不能把消息发过去,用GetDlgItem得到的ID一直都是1,还有就是Menu的Handle怎样才能得到呢,谢谢!
      

  4.   

    刚才WPARAM参数没有设置好,设置好后能对Button进行操作了,但怎样才能找到程序上的EDIT控件和Menu呢。
      

  5.   

    Menu可以通过GetMenu获得Handle,可以给它发消息。但Edit控件,用EnumChildWindows?怎样才能获得所需要设置的Edit控件Handle呢。
      

  6.   

    用EnumChildWindows后用GetDlgCtrlID来比较是不是你要的Edit控件吧
      

  7.   

    EnumChildWindows()后,在其callback里面判断!!是你要的控件就可以return FALSE
      

  8.   


    HWND m_Hwnd;BOOL CALLBACK EnumChildProc(HWND hwndChild, LPARAM lParam) 

    // handle your code here
    char buf[MAX_PATH];
    CString str;
    GetWindowText(hwndChild,buf,MAX_PATH);
    str = buf;
    if(!str.Compare(_T("开始")))//找caption为“开始”的按钮
    {
    m_Hwnd = hwndChild;
    return FALSE;
    }

    return TRUE;
    }EnumChildWindows(m_mainHwnd,EnumChildProc,NULL);
      

  9.   

    http://community.csdn.net/Expert/topic/4572/4572403.xml?temp=.7677729