Window::CheckMutex rename to CheckUnique
This commit is contained in:
parent
42ac308278
commit
cf3dfc4cf4
|
|
@ -53,38 +53,18 @@ e2d::Window::~Window()
|
|||
::CoUninitialize();
|
||||
}
|
||||
|
||||
bool e2d::Window::CheckMutex(const String & mutex)
|
||||
bool e2d::Window::CheckUnique()
|
||||
{
|
||||
if (mutex.IsEmpty())
|
||||
return false;
|
||||
HANDLE mutex = ::CreateMutex(nullptr, TRUE, LPCWSTR(L"Easy2DApp-" + title_));
|
||||
|
||||
HANDLE hMutex = ::CreateMutex(nullptr, TRUE, LPCWSTR(L"Easy2DApp-" + mutex));
|
||||
|
||||
if (hMutex == nullptr)
|
||||
if (mutex == nullptr)
|
||||
{
|
||||
WARN("CreateMutex Failed!");
|
||||
return false;
|
||||
}
|
||||
else if (::GetLastError() == ERROR_ALREADY_EXISTS)
|
||||
{
|
||||
// 关闭进程互斥体
|
||||
::CloseHandle(hMutex);
|
||||
// 打开游戏窗口
|
||||
if (!this->title_.IsEmpty())
|
||||
{
|
||||
// 获取窗口句柄
|
||||
HWND hProgramWnd = ::FindWindow(REGISTER_CLASS, (LPCTSTR)title_);
|
||||
if (hProgramWnd)
|
||||
{
|
||||
// 获取窗口显示状态
|
||||
WINDOWPLACEMENT wpm;
|
||||
::GetWindowPlacement(hProgramWnd, &wpm);
|
||||
// 将运行的程序窗口还原成正常状态
|
||||
wpm.showCmd = SW_SHOW;
|
||||
::SetWindowPlacement(hProgramWnd, &wpm);
|
||||
::SetWindowPos(hProgramWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
|
||||
}
|
||||
}
|
||||
::CloseHandle(mutex);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -37,11 +37,6 @@ namespace e2d
|
|||
// 销毁窗体实例
|
||||
static void DestroyInstance();
|
||||
|
||||
// ´´½¨´°Ì廥³âÌå
|
||||
bool CheckMutex(
|
||||
const String& mutex = L"" /* ½ø³Ì»¥³âÌåÃû³Æ */
|
||||
);
|
||||
|
||||
// 获取窗体标题
|
||||
const String& GetTitle() const;
|
||||
|
||||
|
|
@ -91,6 +86,10 @@ namespace e2d
|
|||
bool enabled
|
||||
);
|
||||
|
||||
// 检测窗口是否唯一
|
||||
// 返回值:返回 false 说明游戏已经正在进行,可以防止用户同时打开多个游戏窗口
|
||||
bool CheckUnique();
|
||||
|
||||
// 弹出窗口
|
||||
// 返回值:当窗口包含取消按钮时,返回值表示用户是否点击确认按钮
|
||||
bool Popup(
|
||||
|
|
|
|||
Loading…
Reference in New Issue