Win32 程序 确保只有一个实例运行

Posted on 2011-12-21 16:36  一年级的小学生  阅读(527)  评论(0编辑  收藏  举报

通过查找当前的窗口类的名称以及标题的名称,查找到是否有这样的窗口句柄。如果查找到这样的窗口句柄,这样就把该窗口句柄设置到窗口的最前面。

hWnd = FindWindow(szWindowClass, szTitle); 
if (hWnd)
{
  // set focus to foremost child window
  // The "| 0x00000001" is used to bring any owned windows to the foreground and
  // activate them.
  SetForegroundWindow((HWND)((ULONG) hWnd | 0x00000001));
  return 0;
}

上面绿色部分:"| 0x00000001"是用来把已有句柄的窗口设置到(窗口Z轴的最顶端)最顶端,并且激活该窗口。