运行任何 Windows 应用程序的多个实例

Jus*_*s12 12 windows multiple-instances

假设某个作者已将其 Windows 应用程序强制为单一实例。有没有办法让这个应用程序有多个实例(除了在虚拟机内运行或要求作者重写应用程序)?

如果有现成的工具,我想知道。(我试过沙盒和 Altiris SVS 没有运气)。

如果那里什么都没有,我想编写一个工具/黑客来让我做到这一点。我正在寻找从哪里开始的指针 - 将涉及什么,需要什么技能。我在 C 和 Java 方面有中等的编程技能。

如果无法做到这一点,请解释原因。

编辑:我知道这是一个坏主意,但我仍然需要这样做(出于各种原因)。我想要一种适用于任何应用程序并且不会引入错误的通用方法。

小智 3

许多应用程序检查全局进程列表(使用 EnumProcesses、OpenProcess、GetModuleBaseName 和类似函数)或窗口列表(使用 EnumWindows、EnumChildWindows)。

您可以尝试设置挂钩(请参阅示例 SetWindowsHookEx、CallNextHookEx 等)来挂钩来自该应用程序的特定 API 函数调用,并用您的响应替换请求的数据来欺骗应用程序。