//枚举窗口是否已打开
BOOL CALLBACK EnumWindowsProc( HWND hwnd,LPARAM lParam)
{
CString strTitle;
strTitle.LoadString("自定义字符串");
HANDLE h = GetProp(hwnd, strTitle.GetBuffer());
strTitle.ReleaseBuffer();
if(h == (HANDLE)0x1111)
{
*(HWND*)lParam = hwnd;
return FALSE;
}
return TRUE;
}
//窗口初始化
HWND hwnd = NULL;
::EnumWindows(EnumWindowsProc,(LPARAM)&hwnd);
if(hwnd!=NULL)
{
WINDOWPLACEMENT wp;
::GetWindowPlacement(hwnd,&wp);
//如果目标窗口最小化则先还原
if(wp.showCmd == SW_SHOWMINIMIZED )
{
::SendMessage(hwnd,WM_SHOWWINDOW,(WPARAM)(TRUE),(LPARAM)(SW_OTHERUNZOOM));
}
//置顶目标窗口
::SetForegroundWindow(hwnd);
return FALSE;
}
//函数原型
HRESULT SetProp(
[in] GROUPPROP PropId,
[in] VARIANT* pvarPropValue
);
//设置窗口标识
SetProp(pMainFrame->m_hWnd, "自定义字符串",(HANDLE) 0x1111);
如何让同台机器 只能允许一个应用启动(加入用户友好处理)
最新推荐文章于 2024-08-17 20:42:09 发布