none
如何防止一个程序多次被执行产生多个实例(如果wm系统默认已有此防止产生多个实例的功能,那我怎么写代码,才能产生多个实例呢?) RRS feed

  • 问题

  •  如何防止一个程序多次被执行产生多个实例
    (如果wm系统默认已有此防止产生多个实例的功能,那我怎么写代码,才能产生多个实例呢?)

    my email:   23483666@qq.com
    www.dyy2.com
    2009年2月6日 16:48

答案

  • 實例是指process的意思嗎?
    一個程式是可以被重覆執行的
    如果不要重覆執行可以用mutex去擋
    HANDLE hMutex = NULL;
     hMutex = CreateMutex(NULL,TRUE,TEXT("SOMEBODYHOME"));
     if (GetLastError() == ERROR_ALREADY_EXISTS)
     {
          return 0;
     }

    2009年2月7日 2:33

全部回复

  • 實例是指process的意思嗎?
    一個程式是可以被重覆執行的
    如果不要重覆執行可以用mutex去擋
    HANDLE hMutex = NULL;
     hMutex = CreateMutex(NULL,TRUE,TEXT("SOMEBODYHOME"));
     if (GetLastError() == ERROR_ALREADY_EXISTS)
     {
          return 0;
     }

    2009年2月7日 2:33
  • 你好,我知道Mutex可以,不过这是在windows系统中,我是在windows mobile系统中的SMARTPHONE2003se版本,我是用vc++2005做的MFC基于对话框的程序,我好像测试了一下,不是你说的那样呢,好像SP系统默认只能产生一个实例(进程)
    www.dyy2.com
    2009年2月7日 17:34
  •  你好^^  我就是在mobile上執行
    我用 task manger去看 是不只一個process的
    (點一次就多一個)
    我的程式是console的ap~
    供你參考一下^^
    2009年2月9日 2:28
  • 哦,谢谢你的热心,我现在发现了,可能我们的MOBILE版本不同,我的是sp2003se,防止多次执行,这种不用担心,如果该进程已启动,通常会将该进程重新激活.(系统会自动判断的)


    但是,还有点不明白:
    1。我的程序只出现在进程管理器中,不出现在任务管理器中。怎么才能使程序出现在任务管理器中啊?
    2. “防止多次执行,这种不用担心,如果该进程已启动,通常会将该进程重新激活.(系统会自动判断的)”,但是我想产生多个实例呢?怎么写代码呀?



    哦,对了,我这个程序在这里 http://www.xtaxa.com/xtaxa/www/mysoft/gprstime.rar


    www.dyy2.com
    2009年2月10日 13:24