superdisplay 启动唯一化 + 命令行连续控制

        superdisplay 启动唯一化 

后来进行了修改,参见 《针对唯一化实例对话框程序,及其命令行操作方法》http://www.cnblogs.com/carl2380/archive/2012/08/28/2660817.html

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

原文地址:https://www.cnblogs.com/carl2380/p/1919410.html