我试图覆盖我没有源代码的应用程序的单个实例限制。我知道应用程序正在使用使用CreateMutex的好方法来确定是否还有另一个实例正在运行。 (如果成功创建了互斥锁,则会继续执行,如果getlasterror指出已创建互斥锁,则会立即退出)。我发现通过嗅探Win32 api调用。 我认为使用Detours会做到这一点,但它并没有完全奏效。我正在拦截CreateMutexW,但由于某种原因,它没有捕获前四次调用它。 (我再次通过嗅探win32调用并查看互斥锁的名称来了解这些调用是什么)。我确实得到了第五个截获的,但我实际想拦截的那个是第一个。
我正在通过示例应用程序使用绕道而行。我想知道问题是绕路是否太晚或者是因为这些呼叫可能有某种保护。绕路是最好的方法吗?也许使用别的东西可能是个更好的主意?
答案 0 :(得分:1)
您描述的情况可能有几个原因。以下是他们中最可能的:
希望这有帮助。