关于autocreate窗体中代码运行的问题(100分)

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

shijiesun3

Unregistered / Unconfirmed
GUEST, unregistred user!
如果希望在应用程序启动时执行某些代码,将应用程序启动时需要执行的代码写在某个设为autocreate窗体的formcreate中即可达到目的?
 
新建一个unit,在initialize里面写入你要执行的代码,然后把这个文件放在工程文件的第一行就行了.
如:
program xxxx
uses
unit in 'unit.pas',
......
如果是窗体也一样的
 
unit里有initialize吗?
 
在PROJECT下面VIEW SOURCE下面的找到项目代码。。。
在Initialize后面可以加你项目启动后运行的东西
 
在software/microsoft/windows/currentversion/run目录下的程序,开机后会自动运行。
在程序初次运行时,把应用程序这样写入注册表中行吗?
Reg:=TRegistery.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.WriteString('software/microsoft/windows/currentversion/run/Application.ExeName');
 
使程序开机后自动运行

unit Unit1;

interface

uses
Windows, Messages, Registry, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)

private
procedure Registry(B:Boolean);
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Registry(B:Boolean);
var
Reg:TRegistry;


begin
Try
Reg:=TRegistry.Create;



Reg.RootKey:=HKEY_LOCAL_MACHINE;

Reg.OpenKey('/software/microsoft/windows/currentversion/run',true);

Reg.WriteString('自动运行',Trim(Application.ExeName));



Finally
Reg.Free;
End;
end;
end.


编译后显示:
Variable 'Reg' might not have been initialized
Private symbol 'Registry' declared but never used
怎么回事?
 
这是我写的开机自动运行程序~你可以参考一下
Var
RegFile : TRegistry;
AppFile : String ;
begin
try
ADOQuery2.Edit ;
ADOQuery2.Post ;

AppFile := Application.ExeName ;
RegFile:=TRegistry.Create;
RegFile.RootKey:=HKEY_LOCAL_MACHINE;
RegFile.OpenKey('SOFTWARE/Microsoft/Windows/CurrentVersion/Run',True);

if DBCheckBox1.Checked=True then
begin
RegFile.WriteString('Test','"'+AppFile+'"');
end;
if DBCheckBox1.Checked=False then
begin
RegFile.DeleteValue('Test');
end;

RegFile.CloseKey ;
RegFile.Free;
except

end;
end;
 
使用这个Trim(Application.ExeName)是不是需要在窗体中加入opendialog对话框?你在edit对话框中输入应用程序目录?
 
写在program里面也行
 
Reg.WriteString('自动运行',Trim(Application.ExeName));
这句编译通不过
Reg.WriteString('自动运行',Trim(Edit1.Text));

换一句也不行,编译后显示:Not enough actual parameters
 
后退
顶部