如何使用管理员权限执行文件操作?

时间:2014-04-10 16:30:10

标签: vb.net file administrator

我正在尝试更新应用程序中的某些文件。我正在尝试下载该文件,将当前文件重命名为(.old),然后将下载的文件重命名为原始文件名(.exe)。

当我在XP中运行它时,它工作正常。在Windows7中,它给出了一个错误,表示访问被拒绝。如果我从桌面快捷方式运行应用程序并将快捷方式的属性设置为以管理员身份运行,它可以正常运行,但它也会提示我每次运行时都以管理员身份运行应用程序。我已经以管理员身份登录,所以每次运行时我都不希望被提示。

我的程序中是否有办法简单地将文件重命名为管理员?

这是我的重命名代码:

Dim old_file_name As String = Now.TimeOfDay.TotalMilliseconds & ".old"
File.Move(Application.StartupPath & "\myprog.exe", Application.StartupPath _
   & "\" & old_file_name)

1 个答案:

答案 0 :(得分:1)

在我的情况下,我发现没有好的(安静的)方式在Windows7上以管理员身份执行操作,而不会被提示提升权限。一种选择是让最终用户更改他们的UAC设置,以便他们不会得到提示,这不是一个可行的选择。另一个是更改我的程序清单,但每次运行时都会提示管理员权限,也不是很理想。另一种方法是简单地更改快捷方式属性以管理员身份运行,但同样,每次运行时都会提示输入管理员权限。所以我最终只是让我的程序运行一个普通用户,当他们想要升级程序时,他们选择执行升级。升级由一个单独的程序(从我的主程序调用)处理,该程序的清单已更改为以管理员身份运行,这将提示用户获取权限。这样,只有在他们想要运行升级程序时才会出现提示。