0
我試圖從窗口資源管理器右鍵單擊上下文菜單功能添加對「發送到」的支持到我的MFC應用程序中。爲此,我解析了命令行參數m_lpCmdLine
InitInstance()
以獲取文件路徑並將其打開。應用程序未運行時就是這種情況。在MFC應用程序中處理「發送到」
但是在應用程序已經運行的情況下。然後在這種情況下,我不想創建一個新的實例。
將這些命令行選項傳遞到現有實例需要什麼。
任何建議將會非常有幫助。
謝謝!
我試圖從窗口資源管理器右鍵單擊上下文菜單功能添加對「發送到」的支持到我的MFC應用程序中。爲此,我解析了命令行參數m_lpCmdLine
InitInstance()
以獲取文件路徑並將其打開。應用程序未運行時就是這種情況。在MFC應用程序中處理「發送到」
但是在應用程序已經運行的情況下。然後在這種情況下,我不想創建一個新的實例。
將這些命令行選項傳遞到現有實例需要什麼。
任何建議將會非常有幫助。
謝謝!
謝謝我得到了解決方案!
我需要找到開放實例和發送消息的句柄以及將在CMainFrame類中處理的數據。
CWnd* pCWnd;
if(pCWnd = CWnd::FindWindow(_T("MyApplication"), NULL))
{
if(m_lpCmdLine != '\0')
{
COPYDATASTRUCT cds;
memset(&cds, 0, sizeof(cds));
cds.dwData = MY_ACTION;
cds.cbData = strlen(m_lpCmdLine) + 1;
cds.lpData = (LPVOID) (LPCTSTR)m_lpCmdLine;
pCWnd->SendMessage(WM_COPYDATA,(WPARAM)NULL, (LPARAM)&cds);
}
}
現在,
MainFrame::OnCopyData()
{
}
我們可以得到這個值。
有關詳細說明,請閱讀「多線程在Win32中的應用程序」的進程間通信章節。
看看http://www.codeproject.com/Articles/3126/Single-Instance-Application – PhilMY