我现在做的程序是用命令行参数来启动,现在需求提出用不同的参数能启动多个实例,而输入相同的命令行时,要求做提示该参数已经启动实例,不能再次启动。

解决方案 »

  1.   

    提供一个方案:
    设定一个隐藏窗口,窗口的名字是你启动参数encode后所得到的一个id
    通过findwindow()就可以检测某类参数所对应的实例时候已经启动。
    如果已经启动,那么把程序的主窗口bringwindowtotop(),提示用户。同时,退出新启动的进程。
    否则,启动新的进程啦。
    呵呵,好了
    兄弟,祝你好运!
      

  2.   

    这个应该是shell extension吧,不牵涉到写驱动的。
      

  3.   

    CreateMutex()进程互斥,在:
    #pragma data_seg("Shared")
    int volatile g_lAppInstance=0;//程序实例计数
    char *commandline=GetCommandLine();//存放命令行参数,通过这个来决定以后进程是否运行
    #pragma data_seg()
    #pragma comment(linker,"/section:Shared,RWS")
      

  4.   

    后面再用代码判断:
    if(++g_lAppInstance>1 && strcmp(commandline,GetCommandLine())==0)
        return FALSE;
      

  5.   

    sorry,我回错帖子了,抱歉。
      

  6.   

    启动的时候创建一个MUTEX即可。代码可以写在OnInitInstance中。MUTEX的名字可以用guid生成一个。