程序如下:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Registry, Classes, Graphics, Controls, SvcMgr, Dialogs;type
Thh = class(TService)
procedure ServiceExecute(Sender: TService);
private
{ Private declarations }
public
function GetServiceController: TServiceController; override;
{ Public declarations }
end;var
hh: Thh;implementation{$R *.DFM}procedure ServiceController(CtrlCode: DWord); stdcall;
begin
hh.Controller(CtrlCode);
end;function Thh.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;procedure Thh.ServiceExecute(Sender: TService);
var reg : TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
if reg.OpenKey('\Software\Kjtj',false) then
begin
ShowMessage(reg.ReadString('kjiefs'));
reg.CloseKey;
end;
reg.Free;
end;end.我将这段代码放到普通应用程序里就可以正确读取到字符串,而在服务里就是读不出来,不知道为什么,百思不得其解啊,哪位帮帮忙吧,谢谢了。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Registry, Classes, Graphics, Controls, SvcMgr, Dialogs;type
Thh = class(TService)
procedure ServiceExecute(Sender: TService);
private
{ Private declarations }
public
function GetServiceController: TServiceController; override;
{ Public declarations }
end;var
hh: Thh;implementation{$R *.DFM}procedure ServiceController(CtrlCode: DWord); stdcall;
begin
hh.Controller(CtrlCode);
end;function Thh.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;procedure Thh.ServiceExecute(Sender: TService);
var reg : TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;
if reg.OpenKey('\Software\Kjtj',false) then
begin
ShowMessage(reg.ReadString('kjiefs'));
reg.CloseKey;
end;
reg.Free;
end;end.我将这段代码放到普通应用程序里就可以正确读取到字符串,而在服务里就是读不出来,不知道为什么,百思不得其解啊,哪位帮帮忙吧,谢谢了。
不知我说的对不对,希望有人给我确认一下