程序A在运行,如果我再次运行A,桌面上没有出现第二个A程序,而是把我第一次运行的A程序放置到了前台,请问这该怎么完成此功能啊?我想利用查看进程,如果有此进程则将此进程提前,但是具体代码我不知道怎么写,请大家帮帮忙,谢谢了!

解决方案 »

  1.   

     char *MutexInfo = "FIRST";
      HANDLE HMutex = OpenMutex(MUTEX_ALL_ACCESS,false,MutexInfo);
      if (HMutex != NULL) ExitProcess(0);///////修改下这里
      HMutex = CreateMutex(NULL,false,MutexInfo);
      

  2.   

    if( FindWindow(NULL,"程序标题")) exit(0);
      

  3.   

        我想通过查看进程表比对进程id号来做,不知道可不可以呢?
         就是我现在有个大程序,大程序中可以启动很多不同的小程序,如果我点击一个按钮,一个相应的小程序就会运行,但是如果我再点击这个按钮的时候,我已经运行的小程序就会再次出现在前台。
         目前,我的想法就是,我已经获得了我目前运行进程的id号,然后我去比对,看看是否在进程表中存在,如果存在的话,如果我再运行此程序就将已经有的程序调至前台。
         但是我不知道如果用代码实现,请问此方法可行吗?如何代码实现呢?
      

  4.   

    2楼不是写的很明白了吗,用Mutex就可以了.