我做了一个服务程序 可以让用户选择是否在启动OS时启动该程序类似 SQL SERVER 2000的服务管理器
以下是部分代码
if chkStrat.Checked then
begin
Reg.RootKey:=HKEY_LOCAL_MACHINE;
if Reg.OpenKey ('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false) then
begin
Reg.WriteString('ATMServer',Application.ExeName);
Reg.CloseKey;
end
else
Reg.DeleteKey('ATMServer')
但是现在的问题是删除不了这个注册表信息
请问如何解决 急 我只能给100分 麻烦大家帮帮忙 在线等 急
以下是部分代码
if chkStrat.Checked then
begin
Reg.RootKey:=HKEY_LOCAL_MACHINE;
if Reg.OpenKey ('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false) then
begin
Reg.WriteString('ATMServer',Application.ExeName);
Reg.CloseKey;
end
else
Reg.DeleteKey('ATMServer')
但是现在的问题是删除不了这个注册表信息
请问如何解决 急 我只能给100分 麻烦大家帮帮忙 在线等 急
应该是用DeleteValue函数
begin
Reg.RootKey:=HKEY_LOCAL_MACHINE;
if Reg.OpenKey ('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false) then
begin
Reg.WriteString('ATMServer',Application.ExeName);
Reg.CloseKey;
end
else
begin
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey ('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false)
Reg.DeleteKey('ATMServer')
end;
var
Reg : TRegistry;
begin
with Reg do
try
Reg := TRegistry.Create;
RootKey := HKEY_LOCAL_MACHINE;
OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', False);
if chkStrat.Checked then
WriteString('ATMServer', Application.ExeName)
else
DeleteValue('ATMServer');
CloseKey;
finally
Free;
end;
end;