我将基于NPAPI的插件移植到Chrome的Native消息主机。
我可以成功连接到它并运行主机应用程序。
但主机应用程序(win32 GUI App)使用许多win32 API(如CreateFile)从服务器更新自身和其他实用程序。
主机应用程序通过安装程序进程(setup.exe)安装在Program Files文件夹中。因此,由于主机应用程序以当前用户权限运行(我可能错了),主机可能在程序文件文件夹中没有某些权限(例如我的情况下为CreateFile)。
通过NPAPI它曾经作为可执行程序工作,我想在系统权限下运行(我也可能在这方面做错了。)
所以基本上我有什么方法可以做到这一点。我知道这可能是Chrome试图通过Native Host解决的安全问题,但我需要这样做,否则某些可执行文件将不会从服务器更新。
本机主机应用程序还需要从服务器下载更多文件(我无法将其放在安装程序中)。
此外,更新可执行文件和下载额外实用程序的源代码是跨平台的,所以我不想改变它,否则我可能需要重写大量代码。
那么有什么建议可以解决这种情况吗?
我们是否可以通过UAC或其他方式获得本机主机应用程序的提升权限。如果提示用户输入UAC对话框,我不介意。
除了Native Messaging还有其他选择吗?我猜想,NaCl还不够。
注意:GetLastError()在CreateFile期间重新加载ERROR_ACCESS_DENIED。 问候, LazyCoder7。