1

我用 C# 写了一个 ConsoleApplication,它的所有工作只是调用 dll 的一些函数(动态链接库),而 Init() 是这些函数之一,它将注册表路径读取为 HKEY_CURRENT_USER\Software\CompanyName\ConfigFolder,嗯,这个ConsoleApplication 目前运行良好。然而,我被告知要编写一个相同的功能程序,但以 Windows 服务的形式。OK,C#.NET方便地编写Windows Services项目。我只是复制了我的 ConsoleApplication 的代码并修改了一点。但问题是我发现它不会读取以前的寄存器路径(HKEY_CURRENT_USER\Software\CompanyName\ConfigFolder),所以 Init() 函数现在不起作用。我想知道 Windows 服务将读取的正确注册表路径是什么。PS:我的 ConsoleApplication 第一次运行时,注册表路径 HKEY_CURRENT_USER\Software\CompanyName\ConfigFolder 不存在,因此这个 Init() 函数将在当前路径下搜索名为“config.ini”的配置文件,然后将该配置写入注册表(HKEY_CURRENT_USER\Software \CompanyName\ConfigFolder)。但是,当我将我的应用程序变成 Windows 服务时,无论我将 config.ini 放入项目当前路径还是 C:\Windows\System32,它都不起作用。我的操作系统是 Windows 7。不管我把 config.ini 放到项目当前路径还是 C:\Windows\System32 中,都不起作用。我的操作系统是 Windows 7。不管我把 config.ini 放到项目当前路径还是 C:\Windows\System32 中,都不起作用。我的操作系统是 Windows 7。

4

1 回答 1

2

它给出的错误是什么?或者它没有给出错误?如果它与注册表的读/写访问权限有关,请确保您在LOCALSYSTEM管理员下运行该服务

于 2013-10-23T04:48:07.850 回答