我想让我的程序避免多次运行,但希望达到像词霸一样,如果再次运行时自动将前一个运行词霸设为当前活动程序,哪位高手教我如何实现呢?

解决方案 »

  1.   

    //只允许运行一次
    HANDLE hMutex=OpenMutex(MUTEX_ALL_ACCESS,0,"ONLYONETIME");
    if(hMutex==NULL)
    CreateMutex(0,TRUE,"ONLYONETIME");
    else
    return 0;
      

  2.   

    给应用设一个静态变量
    unsigned int CYourApp::hInstance = 0;然后在初始化中判断:
    BOOL CYourApp::InitInstance()
    {
    if ( hInstance == 0 )
    hInstance++;
    else
    {
    AfxMessageBox("Don't load another instance.");
    return FALSE;
    }
      

  3.   

    我是学VC不久的,正好看到有这个代码就发一个过来,希望对你有用。做个朋友吧。QQ841122
      

  4.   

    在BOOL CTFApp::InitInstance()中加入这段:         CString swndname = "";//你程序启动后的窗口名字
    HWND pw = NULL;
    pw = FindWindow(NULL,swndname.GetBuffer(swndname.GetLength()));
    if(pw == NULL )
       return ;
    else
    {
        CWnd wnd;
        wnd.Attach(pw);
        wnd.ShowWindow(SW_SHOW);
        wnd.Detach();
              }