當前位置:編程學習大全網 - 遊戲軟體 - 如何壹個軟件多次打開

如何壹個軟件多次打開

::CreateMutex(NULL,TRUE,"MutexName");//字符串裏面的內容可以隨便改.他只是壹個名字

if(GetLastError()==ERROR_ALREADY_EXISTS)

{

AfxMessageBox("妳已經打開了該程序");

exit(0);

return;

}

把上面的代碼加入到工程裏面的構造函數裏面。

原理是在windows內核創建壹個Mutex(互斥),根據創建的返回值判斷是否2重啟動。不管ERROR_ALREADY_EXISTS

::CreateMutex(NULL,TRUE,"MutexName");//創建壹個互斥,名字為"MutexName"

if(GetLastError()==ERROR_ALREADY_EXISTS)//判斷剛才發生了什麽錯誤。

//當第壹次啟動的時候,GetLastError()獲得的錯誤是ERROR_SUCCESS所以程序繼續運行。windows內核已經存在壹個名為"MutexName"的互斥.直到妳用ReleaseMutex("MutexName")語句釋放掉他,或者當前進程結束。

//當第二重啟動的時候,內核已經有壹個名為"MutexName"的互斥,所以創建會失敗,通過GetLastError()判斷上次失敗的原因是ERROR_ALREADY_EXISTS,證明已經有個進程存在,exit(0)是結束進程。

個人感覺上段代碼放在構造函數裏面比放在InitInstance函數內要好。

  • 上一篇:索愛W810這個手機怎麽樣啊?
  • 下一篇:私家車安裝白色爆閃燈違法嗎
  • copyright 2024編程學習大全網