我知道shell a.exe,但是我有个程序只能启动一次,再启动就会激活已经启动的程序,不能启动多次。估计是使用了单例模式。
我听说和虚拟内存有关?请问有什么办法可以让程序启动多个实例呢?用vb可以实现吗?

解决方案 »

  1.   

    在windows中新建几个用户,在每个用户里面开应该是可以的。
      

  2.   


    谢谢,目前我知道有一种方案可以,就是在win7上再安装一个虚拟机之类系统,在虚拟机还可以再启动一个,不知道这种功能是怎么实现的?
      

  3.   


    大部分的软件禁止多个实例都是使用互斥量实现的,理论上说hook互斥量相关的api可以欺骗这些软件防止它们认为已经有实例运行了。
      

  4.   

    先要搞清楚这个程序是如何对多个实例进行判断的才好下手.从你的描述里,能得到以下两个关键点:一,限制多开.二,执行新实例时,会激活已存在的实例,然后新实例退出.从这两点来看,极有可能是使用了互斥体+广播消息进行通知.你可以运行一个程序,然后使用XueTr看看进程句柄中的Mutant句柄,试试关掉几个"像"的,再运行新实例.这样可以判断是不是互斥体.如果是,那只要干掉互斥体就行了.