mfc怎样使对话框只运行一个实例
如果已经运行一个实例,则把原来的那个显示出来?推荐一个好的C/C++/VC的学习网站最好有源码...
如果已经运行一个实例,则把原来的那个显示出来?
推荐一个好的C/C++/VC的学习网站
最好有源码 展开
推荐一个好的C/C++/VC的学习网站
最好有源码 展开
展开全部
最简单的就是设置一内存共享变量.<进程间共享的>
每个实例运行的时候,去查找一个那个变量,如果没有这个变量,就说明没有实例运行就创建它
在窗口有了句柄以后,把句柄值放到这个共享变量里面去.如果查找的时候
有这个变量,就是说明有个实例正在运行,那么我们就读取这个变量的值,
再发送一个自定义消息给那个句柄的窗口<就是运行的实例>然后自己退出
运行的实例收到消息后,看窗口现在是否显示,如果没有,就显示它
2.我自己刚写的办法:
每次运行的时候枚枚举一个进程,如果进程中有实例的映像名存在<就是.exe>
就通过映像名找到进程ID,在通过进程ID找那个主窗口,再和上面的发送消息一样
这种方法有个很大的漏洞,exe文件名改了后就失效.并这种方法效率很低,
但是涉及的知识很广,利于学习用.
如果想用第一中方法,我给你个读写内存共享变量的一个例子你.自己去实现
这个十分简单.
要的留邮箱.
每个实例运行的时候,去查找一个那个变量,如果没有这个变量,就说明没有实例运行就创建它
在窗口有了句柄以后,把句柄值放到这个共享变量里面去.如果查找的时候
有这个变量,就是说明有个实例正在运行,那么我们就读取这个变量的值,
再发送一个自定义消息给那个句柄的窗口<就是运行的实例>然后自己退出
运行的实例收到消息后,看窗口现在是否显示,如果没有,就显示它
2.我自己刚写的办法:
每次运行的时候枚枚举一个进程,如果进程中有实例的映像名存在<就是.exe>
就通过映像名找到进程ID,在通过进程ID找那个主窗口,再和上面的发送消息一样
这种方法有个很大的漏洞,exe文件名改了后就失效.并这种方法效率很低,
但是涉及的知识很广,利于学习用.
如果想用第一中方法,我给你个读写内存共享变量的一个例子你.自己去实现
这个十分简单.
要的留邮箱.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序启动时用CreateMutex创建一个Mutex,返回ERROR_ALREADY_EXISTS表示这个Mutex已经创建了,退出程序
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
授之与鱼,不如授之与渔。
建议你看看《Windows核心编程》
建议你看看《Windows核心编程》
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
创建互斥或者事件对象.具体方法网上找吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用 SetProp,GetProp 函数..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询