现在想用自己的程序另外一个软件,比如在被控制的软件中文本框输入些内容,然后按下某键。给些建议吧。
另外将文件直接从资源管理器中托入程序的特定地方,然后就可以自动打开,这个是哪个消息,如何实现阿?

解决方案 »

  1.   

    得到被控制窗体的窗口句柄,通过SendMessage, SendDlgMessage等向窗体发送消息,就行!
      

  2.   

    第一个问题,简单地控制的话,窗口消息就可以了,找到那些窗口(编辑框、按钮等),发消息给它。第二个,首先接收文件的窗口要打开接收文件拖放的功能,用函数DragAcceptFiles,然后实现WM_DROPFILES消息。
      

  3.   

    先获得程序窗口handle等,然后就控制
      

  4.   

    给你个例子看看主控程序的实现 
    (1)新建一工程文件:Sender,选取MFC AppWizard(exe)。 
    (2)第二步选取Single document(单文档)。 
    (3)其余几步均为确省值。 
    (4)添加三个菜单"命令一"、"命令二"、"命令三"及与之对应的函数: 
    OnSendComm1() 

    CString str="Receiver"; 
    CWnd *pWnd=CWnd::FindWindow(NULL,str); 
    if(pWnd) 
    pWnd->SendMessage(WM_COMM,0,0); 

    OnSendComm2() 

    CString str="Receiver"; 
    CWnd *pWnd=CWnd::FindWindow(NULL,str); 
    if(pWnd) 
    pWnd->SendMessage(WM_COMM,0,1); 

    OnSendComm3() 

    CString str="Receiver"; 
    CWnd *pWnd=CWnd::FindWindow(NULL,str); 
    if(pWnd) 
    pWnd->SendMessage(WM_COMM,1,0); 

    (5)在SenderView.h中添加自定义消息:#define WM_COMM WM_USER+100编译完成即可。 
       
    三、底层工作程序的实现 
    (1)新建工程Receiver、仍是单文档。 
    (2)在CReceiverApp类的InitInstance()函数末尾添加: 
    m_pMainWnd->SetWindowText("Receiver"); 
    用以指定底层工作程序的窗口标题,以便主控程序能根据标题获取到此窗口的窗口句柄。 
    (3)在MainFrm.h中添加自定义消息:#define WM_COMM WM_USER+100。 
    (4)添加自定义消息WM_COMM的消息映射: 
    BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) 
    //{{AFX_MSG_MAP(CMainFrame) 
    // NOTE - the ClassWizard will add and remove mapping macros here. 
    // DO NOT EDIT what you see in these blocks of generated code ! 
    ON_WM_CREATE() 
    //}}AFX_MSG_MAP 
    ON_MESSAGE(WM_COMM,OnSendMsg) 
    END_MESSAGE_MAP() 
    完成消息响应函数OnSendMsg() 
    void CMainFrame::OnSendMsg(WPARAM wParam, LPARAM lParam) 

    if(wParam==0 && lParam==0) 
    AfxMessageBox("主控程序发送命令一!"); 
    if(wParam==0 && lParam==1) 
    AfxMessageBox("主控程序发送命令二!"); 
    if(wParam==1 && lParam==0) 
    AfxMessageBox("主控程序发送命令三!"); 
    }
      

  5.   

    学习了!随便问一下,如果楼上的底层工作程序不是自己写的,不能自己指定"Receiver"那怎么办!?
      

  6.   

    用spy++去找你的窗口的类,FindWindow(类,null);