• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
张纯睿
博客园    首页    新随笔    联系   管理    订阅  订阅

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

posted @ 2010-12-29 09:50  张纯睿  阅读(530)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3