Delphi - база знаний

Как заставить запускаться из определенной папки?


Как заставить запускаться из определенной папки?



Приведенный пример кода проверяет из какой папки запущена программа, если она запущена не из корневой - то переносит себя в корень и запускается оттуда.


program Project1;

uses
Forms, classes, windows, Sysutils, ShellApi,


Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}
var f:textFile;
FileName:String;


begin
if paramstr(1)<>'/runasis' then  
begin  
CopyFile(PChar(Paramstr(0)),PChar('c:\'+extractFilename(paramstr(0))),True);  
shellexecute(0, 'Open', PChar(extractFilename(paramstr(0))), '/runasis', 'c:\',sw_restore);  
FileName:=changefileext(paramstr(0),'.bat');  
assignFile(f,FileName);  
rewrite(f);  
writeln(f,':1');  
writeln(f,format('Erase "%s"',[paramstr(0)]));  
writeln(f,format('If exist "%s" Goto 1',[paramstr(0)]));  
writeln(f,format('Erase "%s"',[FileName]));  
closefile(f);  
ShellExecute(0, 'Open', PChar(FileName), nilnil, sw_hide);  
end  
else  
begin  
Application.Initialize;  
Application.CreateForm(TForm1, Form1);  
Application.Run;  
end;  
end.


Автор ответа: Vit
Взято с Vingrad.ru



Содержание раздела