Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.NET-写入注册表时拒绝访问_Vb.net - Fatal编程技术网

VB.NET-写入注册表时拒绝访问

VB.NET-写入注册表时拒绝访问,vb.net,Vb.net,我正在使用以下代码运行我的程序,该程序将写入注册表 Dim myProcess2 As New System.Diagnostics.Process() Dim startInfo2 As New ProcessStartInfo startInfo2.FileName = Application.StartupPath & "\installs\Assistant\RegisterSureFire.exe" sta

我正在使用以下代码运行我的程序,该程序将写入注册表

Dim myProcess2 As New System.Diagnostics.Process()
            Dim startInfo2 As New ProcessStartInfo
            startInfo2.FileName = Application.StartupPath & "\installs\Assistant\RegisterSureFire.exe"
            startInfo2.Verb = "runas"
            myProcess2.StartInfo = startInfo2
            Application.DoEvents()
            myProcess2.Start()
然后,我有另一个名为“RegisterSureFire”的文件,它正在运行,实际使用以下代码写入注册表:

 My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "Assistant", "C:\SF\Assistant.exe")
这在WindowsVista/7/8中似乎可以很好地使用管理员的“runas”,但当您在WindowsXP中执行此操作时,会出现一个对话框,询问您是想在当前用户中还是在管理员中运行它。我的大多数客户都在50-70岁左右,所以他们不知道这是什么。另外,我注意到如果我只是不使用“runas”,如果它通常在WindowsXP上,那么我在尝试写入注册表时会收到一条“拒绝访问”的错误消息


有人能告诉我如何正确写入注册表吗?

我认为您的代码确实正确,但您的应用程序需要修改注册表的权限。这可以在Windows XP下通过用户模拟实现

请通过谷歌找到完全符合您需求的解决方案,或者在此处查看这篇漂亮的文章:

在不知道登录信息的情况下,您如何进行“用户模拟”?此外,如果他们已经登录到管理员帐户,他们不应该有完全的访问权限吗?或者软件的工作方式不同吗?当然,您需要登录信息,但模拟是更改程序权限的一种方式。(如使用sudo)