正文

如何使应用程序只能创建一个实例2005-10-05 13:29:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/boxer/5711.html

分享到:

作者:qq590240

1.利用互斥句柄
AppName = "test";
HANDLE m_hMutex = CreateMutex(NULL, FALSE, AppName);
// 检查错误代码
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
 // 如果已有互斥量存在则释放句柄并复位互斥量
 CloseHandle(m_hMutex);
 m_hMutex = NULL;
 // 程序退出
 return FALSE;
}

2.利用FindWindow()
BOOL IsRun (LPSTR szClassName=NULL, LPSTR szCaption=NULL)
{
    HWND Hwnd;

    Hwnd = FindWindow (szClassName,szCaption);  //通过类名和程序标题查找
    if ((int)Hwnd > 0)
//如找到则(int)Hwnd > 0.这是以前写的比较傻.可以写成if(Hwnd).如果没发现程序就会返回NULL
    {
        ShowWindow (Hwnd,SW_RESTORE);    //将程序Restore
        SetForegroundWindow (Hwnd);      //将程序提到最前
        return TRUE;
    }
    return FALSE;

阅读(2750) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册