求助各位大侠:如何使相同的命令行参数只启动一个进程实例????谢谢!!!! 我现在做的程序是用命令行参数来启动,现在需求提出用不同的参数能启动多个实例,而输入相同的命令行时,要求做提示该参数已经启动实例,不能再次启动。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 提供一个方案:设定一个隐藏窗口,窗口的名字是你启动参数encode后所得到的一个id通过findwindow()就可以检测某类参数所对应的实例时候已经启动。如果已经启动,那么把程序的主窗口bringwindowtotop(),提示用户。同时,退出新启动的进程。否则,启动新的进程啦。呵呵,好了兄弟,祝你好运! 这个应该是shell extension吧,不牵涉到写驱动的。 CreateMutex()进程互斥,在:#pragma data_seg("Shared")int volatile g_lAppInstance=0;//程序实例计数char *commandline=GetCommandLine();//存放命令行参数,通过这个来决定以后进程是否运行#pragma data_seg()#pragma comment(linker,"/section:Shared,RWS") 后面再用代码判断:if(++g_lAppInstance>1 && strcmp(commandline,GetCommandLine())==0) return FALSE; sorry,我回错帖子了,抱歉。 启动的时候创建一个MUTEX即可。代码可以写在OnInitInstance中。MUTEX的名字可以用guid生成一个。 图中单同步字符帧结构|CRC1是什么意思? 按钮名称通过点击操作实现更改的问题 【请教下自动回帖机的思路】 救命啊,用VC写了一大堆程序,一不小心编译时VC卡死不能动了,怎么办啊,我的程序啊, 多个进程共用其中一进程中函数? 向Vista Icon进军! vector用了erase之后就不能clear了。。。 为什么我的程序一上来就150K以上呢? pdf报表显示简体汉字 关于鼠标光标 在线等答案,关于 VS2003 STL hash_map 的问题!! 请教一下 CWnd::Create的问题!
设定一个隐藏窗口,窗口的名字是你启动参数encode后所得到的一个id
通过findwindow()就可以检测某类参数所对应的实例时候已经启动。
如果已经启动,那么把程序的主窗口bringwindowtotop(),提示用户。同时,退出新启动的进程。
否则,启动新的进程啦。
呵呵,好了
兄弟,祝你好运!
#pragma data_seg("Shared")
int volatile g_lAppInstance=0;//程序实例计数
char *commandline=GetCommandLine();//存放命令行参数,通过这个来决定以后进程是否运行
#pragma data_seg()
#pragma comment(linker,"/section:Shared,RWS")
if(++g_lAppInstance>1 && strcmp(commandline,GetCommandLine())==0)
return FALSE;