superdisplay 啓動唯一化 + 命令行連續控制

        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;
          }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章