2014-11-08 79 views
0

我已经编写了一个Win32程序,它定期从互联网上的专用服务器检索内容。如何使用win32从互联网更新程序(exe)

有时Win32程序本身需要更新。我所做的就是退出上述程序并运行一个下载程序,该程序取代了我需要的主要exe文件。这适用于以管理员模式运行的用户,但不适用于大多数任务拥有足够权限的其他模式。该程序运行在它自己的目录下,该目录不在“c:\ Windows \ program files \”下。

我已经设置了清单文件无济于事。

是否有适用于此(任何)的可行的解决方法?

回答

1

出于安全原因,您不能将文件放置在没有管理员权限的Program Files中。如果你能做到这一点,你理论上可以改变Windows文件并放置恶意软件。 Linux和OSX系统也是如此。 但是,您可以通过prompt the user for an Administrator password并以此方式获得管理权限。

1

您需要您的更新程序拥有管理员权限。您可以通过在应用程序清单的requestedExecutionLevel部分添加requireAdministrator选项来实现此目的。你说你已经试过这个,但是没有用。那么,你一定有什么错,因为这是解决方案。你只需要坚持下去,直到你得到正确的清单。

我认为当你说[程序不在Program Files目录下时,你指的是更新程序。如果正在更新的程序不在Program Files目录下,那么似乎没有明显的原因,即更新程序需要管理员权限。如果是这样,那么你需要进一步调查。

+0

我在requestedExecutionLevel部分添加了requireAdministrator选项。是否有一个实用程序,我可以用来报告什么清单等我在我的exe文件,如果是编译和链接中的一些问题? – user1231247 2014-11-11 08:52:50

+0

Resource Hacker等资源编辑器可让您查看链接的资源。 – 2014-11-11 08:56:40