有些应用程序不能一次启动多次。
有什么办法可以解决这个问题吗?让这些程序“认为”这个应用程序没有其他实例在运行?
Windows 7 32 位
答案1
一般来说,不是。
有些应用程序这样做是为了方便(例如,它们假设您不需要多个媒体播放器应用程序实例),有些应用程序这样做是出于技术原因。一般来说,试图绕过这条规则是个坏主意(我不知道有任何应用程序试图这样做)——如果软件开发人员能够保证没有其他进程正在使用文件,那么他或她可以对文件的可访问性做出很好的假设。
例如,如果我的程序确保一次只能运行一个进程,它可以获取某些用户文件、配置文件等的读/写锁。如果允许启动第二个进程,则如果它尝试获取已锁定文件的读/写锁,它将失败。发生这种情况时,将导致启动的任何第二个副本崩溃和未定义的行为。
为了实现这一点,您必须为要运行的每个副本准备不同的可执行文件,并且每个副本都必须使用不同的进程 ID 重新编译,假设您尝试运行的程序具有唯一的 ID,这是很常见的。
真正实现这一目标的唯一方法是虚拟化- 但这并不是真正运行一个程序的 2 个副本 - 而是在两台独立的计算机上运行一个副本。