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