我做了一个后台服务在后台服务中使用
SendMessage(FindWindow(NULL,"控制台名称"),WM_COPYDATA,0,(LPARAM)&cs);
向前台控制台发送消息,不知道为什么不能接收。此种方法在一般程序中没有问题。请哪位大虾帮帮忙,分数成功以后一定不少

解决方案 »

  1.   

    服务端 
    全局:
    UINT m_nMsgMapped;
    主运行函数:
     m_nMsgMapped=RegisterWindowMessage("ThreadNum");
    //查找前台程序并发送消息
    m_nMsgMapped=RegisterWindowMessage("ThreadNum");
    HWND pWndGet=::FindWindow(NULL,"StartReplSvr");  
    if (pWndGet)
    if(SendMessage(pWndGet,m_nMsgMapped,0,(LONG)dwThreadNum))
    // if (!SetNowUser(dwThreadNum))
    WriteMsgToLogFile("发送错误");
    前端:
    const UINT WM_MsgMapped = RegisterWindowMessage("ThreadNum");
    ON_REGISTERED_MESSAGE(WM_MsgMapped,OnRegMsgMapped)//相应函数
      

  2.   

    服务端 
    全局:
    UINT m_nMsgMapped;
    主运行函数:
     m_nMsgMapped=RegisterWindowMessage("ThreadNum");
    //查找前台程序并发送消息
    m_nMsgMapped=RegisterWindowMessage("ThreadNum");
    HWND pWndGet=::FindWindow(NULL,"StartReplSvr");  
    if (pWndGet)
    if(SendMessage(pWndGet,m_nMsgMapped,0,(LONG)dwThreadNum))
    // if (!SetNowUser(dwThreadNum))
    WriteMsgToLogFile("发送错误");
    前端:
    const UINT WM_MsgMapped = RegisterWindowMessage("ThreadNum");
    ON_REGISTERED_MESSAGE(WM_MsgMapped,OnRegMsgMapped)//相应函数
      

  3.   

    findwindow是有问题的
    我不知道为什么它不像前台程序这样能找到。。
    后一种方法可能不是太好。。