启动MFC程序后,若没关闭,再启动就打开不了,应该如何做?多谢

启动MFC程序后,若没关闭,再启动就打开不了,应该怎么做?谢谢
例如做了个MFC程序A,打开A 正常启动。未关闭,打开A,不在弹出。已关闭,打开A,正常打开

------解决方案--------------------
//创建命名信标对象。

       HANDLE hSem=CreateSemaphore(NULL,1,1,"维新");

       if(hSem)  //信标对象创建成功。

       {

              //信标对象已经存在,则程序已有一个实例在运行。

              if(ERROR_ALREADY_EXISTS==GetLastError())

              {                  

                     CloseHandle(hSem);      //关闭信号量句柄。

 

//获取桌面窗口的一个子窗口。

                     HWND hWndPrev=::GetWindow(::GetDesktopWindow(),GW_CHILD);   

 

                     while(::IsWindow(hWndPrev))

                     {

                     //判断窗口是否有我们预先设置的标记,如有,则是我们寻找的窗口,并将它激活。

                            if(::GetProp(hWndPrev,"维新"))   

                            {

                            //如果主窗口已最小化,则恢复其大小。

                                   if (::IsIconic(hWndPrev))     

                                          ::ShowWindow(hWndPrev,SW_RESTORE);

 

                                   //将应用程序的主窗口激活。

                                   ::SetForegroundWindow(hWndPrev);

                                   return FALSE;                      //退出实例。

                            }