V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Axurez
V2EX  ›  问与答

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

  •  
  •   Axurez · 2014-11-10 13:14:45 +08:00 · 2580 次点击
    这是一个创建于 3677 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Windows 下,有的程序打开了之后再次打开只会弹出原来打开的那个,有的程序打开多次就有多个窗口。有不少程序还可以控制是哪种模式。这是怎么做到的?
    6 条回复    2014-11-10 14:40:06 +08:00
    crab
        1
    crab  
       2014-11-10 13:16:33 +08:00
    互斥体
    leassy
        2
    leassy  
       2014-11-10 13:18:02 +08:00
    1.判断进程,这似乎不太可靠
    2.进程间通讯(这要用系统API),有点复杂
    3.TCP或其它各种协议,还是有点复杂
    4.内存数据交互(这个最简单最有效)我就用的这个,一个字:巴适
    em70
        3
    em70  
       2014-11-10 13:18:51 +08:00
    启动时检查一下,是否有本程序的其他实例,如果有就自动退出. 这样就能保证不能多开.一般默认是允许多开的
    typcn
        4
    typcn  
       2014-11-10 13:22:20 +08:00
    1L正解,创建互斥体,用户体验最好,就像楼主的描述。当然可以被破解,要想靠谱就用服务端机器码验证。
    akira
        5
    akira  
       2014-11-10 14:37:53 +08:00
    @typcn 任何方法都是可被破解的,只是难易区别而已。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5918 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 02:17 · PVG 10:17 · LAX 18:17 · JFK 21:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.