琐屑代码搜集

    如果“日历”这个程序已经运行,可以用下面代码找到这个程序,然后给前置显示。

 

        HWND hProgramWnd = ::FindWindow(NULL,L"日历");
        if (hProgramWnd)
        {
            this->m_nCmdShow = SW_SHOW;
            //::BringWindowToTop(hProgramWnd);
            //SetWindowPos(hProgramWnd,HWND_NOTOPMOST,0,0,30,50,SWP_NOSIZE|SWP_NOMOVE);
            SetWindowPos(hProgramWnd,HWND_TOPMOST,0,0,::GetSystemMetrics(SM_CXSCREEN),::GetSystemMetrics(SM_CYSCREEN) - 26,SWP_SHOWWINDOW) ;
           
        }

 

对某个程序建立程序互斥体,当运行到下面代码的时候,创建互斥体,如果有已经运行,就可以把已运行的程序前置,然后退出。对于使用者来说,就像把原来的已经运行的程序由后台调置到前台。

    //只有一个程序运行
    //创建进程互斥体GPSGUID
    HANDLE m_hMutex = CreateMutex(NULL,FALSE,_T("GpsGUI"));
   
    if (m_hMutex == NULL)
    {
        return FALSE;
    }
   
    //如果程序已经存在并且正在运行
    if (GetLastError() == ERROR_ALREADY_EXISTS)
    {
        HWND hProgramWnd = ::FindWindow(NULL,L"GpsGUI");
        if (hProgramWnd)
        {
            this->m_nCmdShow = SW_SHOW;
            //::BringWindowToTop(hProgramWnd);
            //SetWindowPos(hProgramWnd,HWND_NOTOPMOST,0,0,30,50,SWP_NOSIZE|SWP_NOMOVE);
            SetWindowPos(hProgramWnd,HWND_TOPMOST,0,0,::GetSystemMetrics(SM_CXSCREEN),::GetSystemMetrics(SM_CYSCREEN) - 26,SWP_SHOWWINDOW) ;
           
        }
       
        //关闭进程互斥体
        CloseHandle(m_hMutex);
        m_hMutex = NULL;
        return FALSE;
    }

你可能感兴趣的:(琐屑代码搜集)