我实际上已经就我的问题提出了问题。为防止人们再次询问无关详细信息,我会发布您可以跳过的背景信息:
我正在制作自动化应用程序。此应用程序执行一些任务 为特定窗口的用户随着时间的推移。当这些时间是 需要制作,任务栏中的窗口闪烁,有时甚至是闪烁 窃取重点让用户完成任务。一旦自动化 在这里,不再需要 - 用户只关注窗口 当他想检查自动化的工作情况时。
由于focus and flash disable dll,我发现了这个superuser post about applications stealing focus项目。
我的自动化应用程序是Java。因此,虽然我可以打开DLL注入应用程序并手动禁用闪存,但我想将它集成到java应用程序中 - 例如作为设置选项。当用户选择禁用闪烁和窃取焦点时,将注入dll。
当然,这需要Java能够注入我的.dll
文件。我找到了这个项目:dotnet-dll-injector
但它只处理.NET dll文件。
问:在Java中,有没有办法选择.dll
文件并将其注入进程?如果解决方案不直接,哪些库会导致这种情况?
我注意到CreateRemoteThread
与DLL注入有某种关系。也许JNA库支持吗?
答案 0 :(得分:1)
我不知道在Java中本地使用它的方法。
由于您在.NET中找到了可行的解决方案而且您的任务是特定于Windows的,因此我建议如下:
将dotnet-dll-injector构建为DLL并从Java应用程序中调用它。 How to call into .NET dll from Java
编辑:更容易将其构建为控制台应用并使用Runtime.getRuntime().exec("...");
或者,如果您还处于开发过程的早期阶段并且没有立即跨平台的计划,那么只需在C#中执行所有操作并节省一些麻烦。