superdisplay 啓動唯一化
ok--參照 SuperTools 13681612496
// 唯一化,運行一個實例
if (!FirstInstance())
{
if (m_pMainWnd!=NULL)
{
// 加入這句話,程序就可以連續執行部分命令行(但是注意不能實現連續操作,
// 如打開某個文件,指定到某頁,這種操作最終還是必須用消息來實現),所以採用了方法2
// 方法1
// ::SendMessage(m_MainDlg->m_hWnd, WM_COMMAND, MAKELONG(IDOK,BN_CLICKED), NULL);
// m_MainDlg->OperCmd(strCmdLine);
// 方法2 -- 採用此方法就保證了將命令行,轉化爲消息傳送,這樣外部程序可以調用命令行,
// 也可以直接發送消息來控制 superdisplay',不過用命令行,不需要findwindow,
// 因爲這個工作由superdisplay自己在FirstInstance這裏做了
if (m_lpCmdLine[0] != _T('/0'))
{
CString strMsg(m_lpCmdLine);
COPYDATASTRUCT cpd;
cpd.dwData = 0;
cpd.cbData = strMsg.GetLength()*sizeof(TCHAR)+1;
cpd.lpData = (void*)(strMsg.GetBuffer(0));
::SendMessage(m_pMainWnd->m_hWnd,WM_COPYDATA,NULL,(LPARAM)&cpd);
}
}
return FALSE;
}