访问所需的“Program Files”文件夹

我遇到了这个经常说明的问题,但即使在查找几乎每一个scource之后我都没有得到一个aswer。 问题如下:

我写了一个小的更新程序工具,连接到服务器以检查应用程序的新版本,然后将新版本复制到clientmashine。 所以模式如下:

客户端安装由我和特定应用程序预先配置的更新程序。 基本上,updater位于Program Files文件夹中的某个位置。 然后启动更新程序,连接到我们的服务器并获取最新版本并将其安装到与更新程序安装完全相同的目录。 所以客户端不知道有两个应用程序。 更新程序和更新程序的主要应用程序。 我希望你明白这个主意。

所以这就是我需要访问Program Files文件夹的原因。

我在Windows 7下开发,软件也在7上运行。

有没有办法确保更新程序由管理员运行。 我是否需要管理员权限才能访问它? 还有什么因为它拒绝访问,即使我有管理员权限? 有没有办法检查代码用户拥有哪些权限?

我会将检查器和更新程序分成两个不同的应用程序。 检查器可以作为普通用户运行。 当它检测到有更新时,它会启动更新程序。 对于更新程序,您有一个清单,表明它需要管理员权限 。 这将导致提示用户授予访问权限(假设已启用UAC)。

由于Vista,7和2008服务器上的安全模型,您应该创建一个清单来告诉使用您的应用程序需要什么级别的访问权限,并让它自动提示管理权限(如果它们在没有UAC的情况下运行)。

  • 第9频道 – 如何:告诉Vista的UAC您的应用程序需要什么样的Privelege级别

  • 第9频道 – 如何:使用Vista的UACfunction避免始终要求管理员权限

  • MSDN – Windows Vista和Windows Server 2008开发人员故事:用户帐户控制(UAC)的Windows Vista应用程序开发要求

  • UAC团队博客

  • 代码项目 – Vista Bridge(Managed Wrapper,用于许多新的Vista / 7/2008function)

在您的应用中使用app.manifest。 将requireadministrator设置为true。 或复制粘贴下面的xml

            

上面是一个vb.net应用程序。