开机后自动启动应用程序是通过什么方法实现的?(100分)

  • 主题发起人 主题发起人 shijie
  • 开始时间 开始时间
S

shijie

Unregistered / Unconfirmed
GUEST, unregistred user!
需要编程,写入要启动程序的路径到注册表相关位置?
 
uses //加 registry
这是第1步
var reg:tregistry
//定义变量这是第2步
begin //以下是第3步
reg:=tregistry.create
// 创建tregistry对象,为了操作注册表
reg.rootkey:=HKEY_LOCAL_MACHINE
// rootkey指定根键
reg.openkey('SOFTWARE/Microsoft/Windows/CurrentVersion/Run',true)
// openkey操作主键
reg.WriteString('6331905',application.ExeName )
//实现开机自启动
reg.closekey
//关闭KEY
reg.free
//释放
end;

//下面是实例

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,registry
//加 registry
这是第1步

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
reg:tregistry
//定义变量 , 这是第2步
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
MessageBox (0, '生成成功!'+chr(13)+'生成成功!','千里马网马',64);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin //以下是第3步
reg:=tregistry.create
// 创建tregistry对象,为了操作注册表
reg.rootkey:=HKEY_LOCAL_MACHINE
// rootkey指定根键
reg.openkey('SOFTWARE/Microsoft/Windows/CurrentVersion/Run',true)
// openkey操作主键
reg.WriteString('6331905',application.ExeName )
//实现开机自启动
reg.closekey
//关闭KEY
reg.free
//释放
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
reg:=tregistry.create
// 创建tregistry对象,为了操作注册表
reg.rootkey:=HKEY_LOCAL_MACHINE
// rootkey指定根键
reg.openkey('SOFTWARE/6331905',true)
// openkey操作主键
reg.writeinteger('7788',0 )
//实现开机自启动
reg.closekey
//关闭KEY
reg.free
//释放
end;
end.
//总结 WriteString 默认RG_SZ writeinteger 默认RG_DWORD
 
不下于6种方法可以实现.知道Windows开机启动的方式以后再用程序去实现
 
procedure TForm1.Button1Click(Sender: TObject);
var
sReg: TRegistry;
begin
sReg := TRegistry.Create;
try
sReg.RootKey := HKEY_LOCAL_MACHINE;
sReg.OpenKey('SOFTWARE/Microsoft/Windows/CurrentVersion/Run',False);
sReg.WriteString(Application.Title,Application.ExeName);
finally
sReg.CloseKey;
sReg.Free;
end;
end;
 
那就不叫开机后自动启动,叫登录后自动启动。
 
在sReg.WriteString(Application.Title,Application.ExeName);语句中

Application.ExeName是应用程序的完整路径+应用程序名吧?怎么输入应用程序的完整路径+应用程序名?需要一个opendialog对话框吗?
 
应用程序的完整路径和应用程序名:
ParamStr(0)
 
要开机自动启动的话,可以把程序注册为系统服务;
 
一楼正解,使用注册表的主要原理是将其加入那个Run键值之下,机器在进入吻到死后自动加载这个程序。不过很容易被破解。
 
注册表,服务...
都是实现启动.
 
在启动的菜单中加是必须要用户登陆后才能启动的
若不用登陆就启动,要用服务模式
若服务程序是有界面的, 则还需要设置成人机交互模式
 

Similar threads

后退
顶部