.net - 我无法从服务读取注册表值

标签 .net vb.net windows-services registry

在我的服务中,我具有以下功能,以便从我的注册表中获取一些值:

 Public Function GetKeyValue(ByVal nKey As String, ByVal sPath As String) As String
        Dim RegKey As RegistryKey
        Dim kValue As String = Nothing
        Dim Pos As String
        If CheckRegistry(sPath) Then
            Try
                RegKey = Registry.CurrentUser.OpenSubKey(sPath)
                kValue = CStr(RegKey.GetValue(nKey))

            Catch ex As Exception
                StartLogFile(" GetKeyValue " & vbNewLine & "Stack Trace= " & ex.StackTrace, EventLogEntryType.Warning)
            End Try
        End If
        Return kValue
    End Function

相同的功能在 Windows 窗体中工作正常,但如果我从服务调用,则她无法读取该值。
有没有人知道发生了什么?

最佳答案

您不应将数据存储在 HKEY_CURRENT_USER 中但在 HKEY_LOCAL_MACHINE 下这对 Windows 服务更有意义。

另请注意,您还可以设置注册表项的权限。尝试阅读时还要检查一下。

关于.net - 我无法从服务读取注册表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5370206/

相关文章:

c# - 在 UI 线程中任务完成时显示表单

mysql - 为什么我的 .net 应用程序不接受通过用户输入的 SQL 查询?

c# - OdbcConnection.Open() 出现奇怪的异常

javascript - ASP .Net 在文本更改回发时更新 asp 页面上的单个元素

wcf - Windows 服务和 WCF

.net - 将 Topshelf 应用程序安装为 Windows 服务

.net - 检测该文件受 Microsoft Azure 信息保护保护

vb.net - 停止在 UserControl 的特定区域引发 Click 事件

vb.net - Newsoft JSON .NET 反序列化为 VB.net 中具有私有(private)属性的对象

c# - 以编程方式在远程计算机上安装 Windows 服务