程序允许多开与否是怎么控制的?

2014-11-10 13:14:45 +08:00
 Axurez
Windows 下,有的程序打开了之后再次打开只会弹出原来打开的那个,有的程序打开多次就有多个窗口。有不少程序还可以控制是哪种模式。这是怎么做到的?
2507 次点击
所在节点    问与答
6 条回复
crab
2014-11-10 13:16:33 +08:00
互斥体
leassy
2014-11-10 13:18:02 +08:00
1.判断进程,这似乎不太可靠
2.进程间通讯(这要用系统API),有点复杂
3.TCP或其它各种协议,还是有点复杂
4.内存数据交互(这个最简单最有效)我就用的这个,一个字:巴适
em70
2014-11-10 13:18:51 +08:00
启动时检查一下,是否有本程序的其他实例,如果有就自动退出. 这样就能保证不能多开.一般默认是允许多开的
typcn
2014-11-10 13:22:20 +08:00
1L正解,创建互斥体,用户体验最好,就像楼主的描述。当然可以被破解,要想靠谱就用服务端机器码验证。
akira
2014-11-10 14:37:53 +08:00
@typcn 任何方法都是可被破解的,只是难易区别而已。
raincious
2014-11-10 14:40:06 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/145328

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX