在我们机子上的注册表中有个的根键HKEY_LOCAL_MACHINE下有一个键"Run"(Software/Windows/CurrentVersion/Run),Windows开机是会搜索注册表,凡在该键下设置了正确路径的有效程序就会自动运行.
下面开始介绍我写的这个Delphi程序^_^.
在新建的Form1中添加以下代码
unit Unit1;
interface
uses
Windows , Messages , SysUtils , Variants , Classes , Graphics , Controls , Forms ,
Dialogs , registry , StdCtrls;
type
TForm1 = class (TForm)
Button1 : TButton; // 用于控制程序的运行
Edit1 : TEdit; // 用于记录用户要添加的数值名称
Edit2 : TEdit; // 用于记录数值数据(即自启动程序的路径)
StaticText1 : TStaticText;
procedure Button1Click(Sender : TObject);
private
{ Private declarations }
public
{ Public declarations }
end ;
var
Form1 : TForm1;
implementation
{ $R *. dfm}
procedure TForm1 . Button1Click(Sender : TObject);
var
Reg : TRegistry; // 首先定义一个TRegistry类型的变量Reg
begin
Reg := TRegistry . Create; // 创建一个新键
Reg . RootKey := HKEY_LOCAL_MACHINE; // 将根键设置为HKEY_LOCAL_MACHINE
Reg . OpenKey( ' SOFTWAREMicrosoftwindowsCurrentVersionRun',true);//打开一个键
Reg.WriteString(Edit1.Text,Edit2.Text); //在Reg这个键中写入数据名称和数据数值
Reg.CloseKey; //关闭键
end;
end.
interface
uses
Windows , Messages , SysUtils , Variants , Classes , Graphics , Controls , Forms ,
Dialogs , registry , StdCtrls;
type
TForm1 = class (TForm)
Button1 : TButton; // 用于控制程序的运行
Edit1 : TEdit; // 用于记录用户要添加的数值名称
Edit2 : TEdit; // 用于记录数值数据(即自启动程序的路径)
StaticText1 : TStaticText;
procedure Button1Click(Sender : TObject);
private
{ Private declarations }
public
{ Public declarations }
end ;
var
Form1 : TForm1;
implementation
{ $R *. dfm}
procedure TForm1 . Button1Click(Sender : TObject);
var
Reg : TRegistry; // 首先定义一个TRegistry类型的变量Reg
begin
Reg := TRegistry . Create; // 创建一个新键
Reg . RootKey := HKEY_LOCAL_MACHINE; // 将根键设置为HKEY_LOCAL_MACHINE
Reg . OpenKey( ' SOFTWAREMicrosoftwindowsCurrentVersionRun',true);//打开一个键
Reg.WriteString(Edit1.Text,Edit2.Text); //在Reg这个键中写入数据名称和数据数值
Reg.CloseKey; //关闭键
end;
end.
以上就是我写的这个通过修改注册表来设置开机自动运行程序的程序(好像有点绕口......^_^)。
程序是可以运行的,但是可能我的注释有些不到位,请见谅。
在程序运行前Software/Windows/CurrentVersion/Run键内的情况
在程序中输入参数
在程序运行过后注册表Software/Windows/CurrentVersion/Run键内的情况