天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 92|回复: 0

c++ 简单进程交互(获取双方进程句柄)

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
一:主进程打开子进程

    char chCmdLine[256];
    sprintf(chCmdLine," /%d /%d /%d /Class:Quote%d",m_hWnd,1,1,GetCurrentProcessId());// /父窗口句柄 / /是否内嵌打开 /
    ShellExecute(NULL, NULL,"子进程名", chCmdLine, NULL, SW_SHOWNORMAL);

二:子进程通过主进程打开的命令行获取主进程句柄
        CString sParameter;
        for (int i = 1; i < __argc; i++)
        {
                sParameter = __argv[i];
                if(i == 1)
                        m_ParentHWnd = (HWND)atoi(sParameter.Mid(1));
        }

三:子进程将子进程句柄发给主进程
        HqLoginMsg loginMsg;
        loginMsg.m_nType = 1;
        loginMsg.m_hWnd = NULL;
        loginMsg.m_hMainWnd = this->m_hWnd;
        loginMsg.m_nProcessID = GetCurrentProcessId();
        loginMsg.m_nID = 1;

        COPYDATASTRUCT data;
        data.dwData = WM_COPYDATA_LoginWnd;
        data.cbData = sizeof(HqLoginMsg);
        data.lpData = &loginMsg;
        ::SendMessage(m_ParentHWnd,WM_COPYDATA,(WPARAM)m_hWnd,(LPARAM)&data);

四:主进程保存子进程句柄信息
BOOL OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
        switch(pCopyDataStruct->dwData)
        {
        case WM_COPYDATA_LoginWnd:
                {
                        if(m_pHqLoginMsg == NULL)
                                m_pHqLoginMsg = new HqLoginMsg;
                        memcpy(m_pHqLoginMsg,pCopyDataStruct->lpData,sizeof(HqLoginMsg));
                }
                break;
       }
return True;
}

[code]原文链接:https://blog.csdn.net/qq_32008381/article/details/78751819[/code]

 

 

 

 

c++ 简单进程交互(获取双方进程句柄)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 12:37 , Processed in 0.125112 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表