0

我正在将基于 NPAPI 的插件移植到 Chrome 的本机消息传递主机。

我可以成功连接到它并运行主机应用程序。

但是主机应用程序(win32 GUI App)使用许多 win32 API,如 CreateFile 来更新自身和服务器上的其他实用程序。

主机应用程序通过安装程序 (setup.exe) 安装在 Program Files 文件夹中。因此,由于主机应用程序以当前用户权限运行(我可能错了),因此主机可能在程序文件文件夹中没有某些权限(例如在我的情况下为 CreateFile)。

通过 NPAPI,它曾经作为可执行文件运行,我猜它在系统权限下运行(我也可能错了)。

所以基本上有什么办法可以实现这一点。我知道这可能是 Chrome 试图通过 Native Host 解决的一个安全问题,但我需要这样做,否则某些可执行文件将不会从服务器更新。

此外,本机主机应用程序需要从服务器下载更多文件(我无法将其放置在安装程序中)。

此外,更新可执行文件和下载额外实用程序的源代码是跨平台的,所以我不会更改它,否则我可能需要重写很多代码。

那么有什么建议可以解决这种情况吗?

有什么方法可以通过 UAC 或其他方式获得本机主机应用程序的提升权限。我不介意是否提示用户输入 UAC 对话框。

或者除了 Native Messaging 之外还有其他选择吗?我猜氯化钠也不够用。

注意:GetLastError() 在 CreateFile 期间返回 ERROR_ACCESS_DENIED。问候, LazyCoder7。

4

0 回答 0