zoukankan      html  css  js  c++  java
  • vc实现唯一进程

    我们的程序经常需要实现唯一实例的效果。

    主要涉及几个api

    HWND FindWindow( LPCTSTR lpClassName, /*pointer to class name*/ LPCTSTR lpWindowName /*pointer to window name*/ );

    BOOL IsIconic( HWND hWnd /* handle to window*/ );

    BOOL SetForegroundWindow( HWND hWnd // handle to window to bring to foreground );

    主要原理:

    • 通过标题找到窗口句柄
    • 调用 GetLastActivePopup,是否有弹出的子窗口,如果没有会返回本身
    • 调用 SetForegroundWindow 激活
    • 然后本身程序退出,这样就保证了唯一实例
              //linbc add on 20090619
          HWND pWndPrev, pWndChild;
          pWndPrev 
    = ::FindWindow(NULL,"XX保险公司业务管理系统");
          
    if(pWndPrev != NULL){
              pWndChild 
    = ::GetLastActivePopup(pWndPrev);
              
    // 是否最小化
              if (::IsIconic(pWndPrev))
                  ::ShowWindow(pWndPrev,SW_RESTORE);

              ::SetForegroundWindow(pWndChild);
              
    return FALSE;
          }
  • 相关阅读:
    浏览器的宽、高度
    表格 强制换行
    post请求
    js验证正则
    js去除空格
    表格事件,表格删除行
    AJAX初始化combox 并取值
    组脚视图
    Git 常用命令
    NSPredicate 根据谓语动词 进行 模糊查询
  • 原文地址:https://www.cnblogs.com/linbc/p/1506942.html
Copyright © 2011-2022 走看看