Как заставить запускаться из определенной папки?
Материал из DRKB
Приведенный пример кода проверяет из какой папки запущена программа, если она запущена не из корневой - то переносит себя в корень и запускается оттуда.
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), nil, nil, sw_hide);
end
else
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end.
Author: Vit
Source: Vingrad.ru http://forum.vingrad.ru
ID: 04568