Java用部分提升/子程序编写注册表

问题描述

我的 Java 程序使用 Windows 注册表来存储一些值。 (是的,这不能以不同的方式完成)

问题是我实现了拖放功能,但如果进程被提升,Windows 不允许拖放,而拖放源不是。

就像将文件夹从 Windows 资源管理器拖到程序中一样。

现在我的问题是,是否可以部分提升我的程序,或者使用提升的子程序,并以某种方式将值传递给主程序?

是的,我知道浏览器也可以提升,但认情况下没有用户拥有这个。

解决方法

使用的解决方案:

启动主应用程序,创建一个 ServerSocket,然后启动辅助应用程序,该应用程序封装在一个 .exe 中,该应用程序在启动时请求管理员权限。

与此同时,主应用等待 Helper 通过 Socket 连接,Helper 然后通过 ObjectOutputStream 从注册表发送所有读取值。

Helper 应用程序停留在 while(true) 等待主应用程序的进一步指令,如果主应用程序关闭,它将向 Helper 发送“退出”命令,然后帮助程序关闭。