给你一个删除后又写入的例子:uses Registryvar registerTemp : TRegistry; tmpStr : string;begin registerTemp := TRegistry.Create; with registerTemp do begin RootKey := HKEY_LOCAL_MACHINE; if OpenKey('Software\Microsoft\Windows\CurrentVersion\run',True) then begin readkey(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\CurrentVersion\run', extractfilename(Application.ExeName),tmpStr); if tmpStr<>'' then //DeleteRegistry(extractfilename(Application.ExeName)); DeleteValue(extractfilename(Application.ExeName)); WriteString(extractfilename(Application.ExeName),Application.ExeName); end; CloseKey; end; registerTemp.free; end;function DeleteRegistry(Name:String):boolean; /////////////////////////////////////////////////////////////////// // // 过程名称:DeleteRegistry // 功能:删除注册表中指定的值; // 输入: ? // Name :键名称 // 输出: value :键值 // Result : boolean ******* true : 删除成功 // false : 删除不成功 ////////////////////////////////////////////////////////////////// var registerTemp : TRegistry; begin registerTemp := TRegistry.Create; //建立一个Registry实例 with registerTemp do begin RootKey:=HKEY_LOCAL_MACHINE; //设置根键值为HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion if OpenKey('Software\Microsoft\Windows\CurrentVersion',True) then //写入自己程序的快捷方式信息 begin deleteValue(Name); result := true; end else result := false; //善后处理 // CloseKey; Free; end; end;
Reg.RootKey := HKEY_CURRENT_USER;
if Reg.OpenKey(RegKey, false)
then
begin
keyValue:=Reg.ReadString(RegItem);....
看看相关帮助,很简单的
const
AUTOKEY: string = '\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon';
var
REG1:TRegistry;
begin
result := false;
reg1 := tregistry.Create;
try
try
reg1.RootKey := HKEY_LOCAL_MACHINE;
reg1.OpenKey(AUTOKEY,FALSE);
reg1.WriteString('AutoAdminLogon','1');
reg1.WriteString('DefaultUserName',name);
reg1.WriteString('DefaultPassword',pass);
reg1.WriteString('DefaultDomainName','');
reg1.CloseKey;
result :=true;
except
Application.MessageBox( PChar(Loadstr(489)+#13+#10+Loadstr(38)), // 38
PChar(Loadstr(moSystemInstall)), // 1
MB_OK or MB_ICONERROR );
end;
finally
reg1.Free;
end;
end;
try
AutoRun.RootKey := HKEY_LOCAL_MACHINE;
if AutoRun.OpenKey('ComputerAssociates\KILL\60\NameCli', False) then
AutoRun.WriteString(ServerList, '0A 3C 06 1B')
finally
FreeAndNil(AutoRun);
end;
const
AUTOKEY: string = '\SOFTWARE\ComputerAssociates\KILL\60\NameCli';
var
REG1:TRegistry;begin reg1 := tregistry.Create;
try
try
reg1.RootKey := HKEY_LOCAL_MACHINE;
reg1.OpenKey(AUTOKEY,FALSE);
reg1.WriteString('ServerList','0A 3C 06 1B');
reg1.CloseKey;
showmessage('good1')
except
showmessage('good');
end;
finally
reg1.Free;
end;
end;
我仿照克沙给的那个写个最简单的,好像不行。每次总是显示GOOD,看来TRY中的有问题,请大家再帮我看看。
Registryvar
registerTemp : TRegistry;
tmpStr : string;begin
registerTemp := TRegistry.Create;
with registerTemp do
begin
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey('Software\Microsoft\Windows\CurrentVersion\run',True) then
begin
readkey(HKEY_LOCAL_MACHINE,
'Software\Microsoft\Windows\CurrentVersion\run',
extractfilename(Application.ExeName),tmpStr);
if tmpStr<>'' then
//DeleteRegistry(extractfilename(Application.ExeName)); DeleteValue(extractfilename(Application.ExeName)); WriteString(extractfilename(Application.ExeName),Application.ExeName);
end;
CloseKey;
end;
registerTemp.free;
end;function DeleteRegistry(Name:String):boolean;
///////////////////////////////////////////////////////////////////
//
// 过程名称:DeleteRegistry
// 功能:删除注册表中指定的值;
// 输入: ?
// Name :键名称
// 输出: value :键值
// Result : boolean ******* true : 删除成功
// false : 删除不成功
//////////////////////////////////////////////////////////////////
var
registerTemp : TRegistry;
begin
registerTemp := TRegistry.Create;
//建立一个Registry实例
with registerTemp do
begin
RootKey:=HKEY_LOCAL_MACHINE;
//设置根键值为HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
if OpenKey('Software\Microsoft\Windows\CurrentVersion',True) then
//写入自己程序的快捷方式信息
begin
deleteValue(Name);
result := true;
end else
result := false;
//善后处理
// CloseKey;
Free;
end;
end;