是否要是用FindWindow,FindWindow里的参数如何配置?

解决方案 »

  1.   

    1.使用FindWindow
    InitInstance:

    CWnd *pWndPrev,*pWndChild;
    if(pWndPrev=CWnd::FindWindow(_T("#32770"),"FlashFavorite"))
    {
    pWndChild=pWndPrev->GetLastActivePopup();
    if(pWndPrev->IsIconic())
    pWndPrev->ShowWindow(SW_RESTORE);
    pWndChild->SetForegroundWindow();
    return false;
    }2.使用Mutex
        HANDLE m_hMutex=CreateMutex(NULL,TRUE, m_pszAppName);
        if(GetLastError()==ERROR_ALREADY_EXISTS) 
    return FALSE; 
      

  2.   

    使用互斥的方法来避免。
    HANDLE m_MyMutex;CString mutexName = "MyApp";
    m_MyMutex = OpenMutex(MUTEX_ALL_ACCESS,FALSE,mutexName);
    if ( m_MyMutex==NULL)
    {
    // 表示当前还没有别的实例在运行
        m_MyMutex = CreateMutex(NULL,TRUE,mutexName);
    else
    {
       AfxMessageBox("Running Already");
       return false;
    }
      

  3.   

    一点都不晚!说清楚一点吧,我做了一个.exe文件,它是通过某个接口进行通信的。我要做的是当这个可执行文件被打开第二次时,提示接口已被占用,而且不做以后的各种操作。注意,这是这个project的最初状态,怎么才能找到这个.exe文件的标志呢?
      

  4.   

    建立互斥体呀
    HANDLE m_hMutex=CreateMutex(NULL,TRUE, "这里就是.exe标志");