以下是我找的让软件随Windows一起启动的代码。procedure TForm1.FormCreate(Sender: TObject);
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',true);
reg.WriteString('6331905',application.ExeName);
reg.CloseKey;
reg.Free;
end;
//以下的代码是什么意思?把'SOFTWARE\Microsoft\Windows\CurrentVersion\Run'下写入‘6331905’为干什么还要写下面的代码?如果不写下面的代码能实现随Windows一起启动吗?
procedure TForm1.RzBitBtn1Click(Sender: TObject);
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('SOFTWARE\6331905',True)
reg.WriteInteger('7788',0);//这个有什么用呢?
reg.CloseKey;
reg.Free;
MessageDlg('Successful!',mtinformation,[mbOk],0);
end;我想把把'SOFTWARE\Microsoft\Windows\CurrentVersion\Run'下的‘6331905’删除,写如下的代码为什么总是找不到‘6331905’?
但注册表里确实是有‘6331905’,删除掉这个是不是软件就不随Windows一起启动了?
procedure TForm1.RzBitBtn2Click(Sender: TObject);
begin
reg:=TRegistry.Create;
try
with reg do
begin
RootKey:=HKEY_LOCAL_MACHINE;
OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',False);
if KeyExists('6331905')then//用F7跟踪,到这步就不往下走了,直接到end,然后就finally,找不着'6331905'
if Deletekey('6331905')then
MessageDlg('已经删除!',mtInformation,[mbOK],0);
end;
finally
reg.Free;
end;
end;请各位高手帮个忙啊,谢谢谢谢啊!
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',true);
reg.WriteString('6331905',application.ExeName);
reg.CloseKey;
reg.Free;
end;
//以下的代码是什么意思?把'SOFTWARE\Microsoft\Windows\CurrentVersion\Run'下写入‘6331905’为干什么还要写下面的代码?如果不写下面的代码能实现随Windows一起启动吗?
procedure TForm1.RzBitBtn1Click(Sender: TObject);
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
reg.OpenKey('SOFTWARE\6331905',True)
reg.WriteInteger('7788',0);//这个有什么用呢?
reg.CloseKey;
reg.Free;
MessageDlg('Successful!',mtinformation,[mbOk],0);
end;我想把把'SOFTWARE\Microsoft\Windows\CurrentVersion\Run'下的‘6331905’删除,写如下的代码为什么总是找不到‘6331905’?
但注册表里确实是有‘6331905’,删除掉这个是不是软件就不随Windows一起启动了?
procedure TForm1.RzBitBtn2Click(Sender: TObject);
begin
reg:=TRegistry.Create;
try
with reg do
begin
RootKey:=HKEY_LOCAL_MACHINE;
OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',False);
if KeyExists('6331905')then//用F7跟踪,到这步就不往下走了,直接到end,然后就finally,找不着'6331905'
if Deletekey('6331905')then
MessageDlg('已经删除!',mtInformation,[mbOK],0);
end;
finally
reg.Free;
end;
end;请各位高手帮个忙啊,谢谢谢谢啊!
我这还有个别的自启动的代码,M_SUBNAME为软件中文名称function SetAppAtStart(bSet:Boolean):BOOL;
var
key : HKEY;
ret : integer;
chg : DWORD;
AppStr : String;
begin
result := false;
key := 0;
ret := RegCreateKeyEx(
HKEY_LOCAL_MACHINE,
APP_KEY_START,
0,Nil,REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS,
Nil,key,@chg);
if (ret<>ERROR_SUCCESS) or (key=0) then exit;
try
if not bSet then begin
RegDeleteValue(key,M_SUBNAME);
end
else begin
AppStr := ParamStr(0);
RegSetValueEx(key,M_SUBNAME,0,REG_SZ,PChar(AppStr),Length(AppStr));
end;
result := true;
finally
RegCloseKey(key);
end;
end;
if KeyExists('6331905')then//用F7跟踪,到这步就不往下走了,直接到end,然后就finally,找不着'6331905'
if Deletekey('6331905')then
MessageDlg('已经删除!',mtInformation,[mbOK],0); 按照你的代码来理解,,6331905是一个值value,而不是一个键Key,所以不应用KeyExists,而是用 ValueExists if ValueExists('6331905')then//用 ValueExists,不应用KeyExists,
if Deletekey('6331905')then
MessageDlg('已经删除!',mtInformation,[mbOK],0);
简单说来Key是一个文件夹,Value是key文件夹下的文件在Regedit.exe中,
右击-新建-"项":就是创建一个Key
右击-新建-"字符串值"/"二进制值"/"DWORD值":就是创建一个value
MessageDlg('已经删除!',mtInformation,[mbOK],0); 这个也得改一下
if DeleteValue('6331905')then
MessageDlg('已经删除!',mtInformation,[mbOK],0);