//uses Registry var Reg:TRegistry begin Reg:=TRegistry.Create; Reg.rootkey:=HKEY_LOCAL_MACHINE; try if Reg.openkey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false) then WriteString('Delphi program',application.exename); reg.close; finally reg.free; end; end;
"RealTray"=""//这里放你要运行的程序
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
里的在window之后
是
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunService
如果是32位,在windows没起来之前是不能运行的
var
Reg:TRegistry
begin
Reg:=TRegistry.Create;
Reg.rootkey:=HKEY_LOCAL_MACHINE;
try
if Reg.openkey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false) then
WriteString('Delphi program',application.exename);
reg.close;
finally
reg.free;
end;
end;
老大你真厉害
widows不会理财你的
想控制windows,就是softice也难啊
是不是应该这样想,你的程序想不想让windows运行,
而不是windows运行起来后一看没你的程序,windows就不运行
你不觉得矛盾么?
windows不运行windows怎么知道有没有你的程序
思路就不清楚啊
不是Run
Run里的在windows启动完成后运行
在RunOnce底下建立一个子键(注意:是键,不是值),在这个键底下建立一个字符串值
,命名为1,把这个字符串的实际值设置为你的程序名,这样Windows启动之前就启动这个程序.下面是实际的代码,测试过,没问题(代码是BCB,但转换成Delphi也很容易):
TRegistry* Reg=new TRegistry(); Reg->RootKey=HKEY_LOCAL_MACHINE;
Reg->OpenKey(Reg_CurrentVersion,false);
Reg->OpenKey("RunOnceEx",true); Reg->WriteString("","Auto Run Manager");
Reg->OpenKey("LiteRun1.0",true);
Reg->WriteString("","Auto Run Manager");
Reg->WriteString("1",Application->ExeName); Reg->CloseKey();
delete Reg;