delphi запуск внешнего приложения



Автор Denis kovalskiy задал вопрос в разделе Другие языки и технологии

как в делфи запустить приложение из директории программы и получил лучший ответ

Ответ от Ўрий Зеленко[гуру]
получить директорию программы:
app_dir:=ExtractFilePath(Application.Exename);
а для запуска внешнего приложения дарю свой компонент:
unit Shell;
interface
uses ShellApi, Classes, Windows, Dialogs, Forms,
SysUtils;
type
TOperationType=(soOpen,soPrint,soExplore);
TOperationValues=array[TOperationType] of string;
TShowCmd=(HIDE,MAXIMIZE,MINIMIZE,RESTORE,SHOW,
SHOWMINIMIZED,SHOWMINNOACTIVE,SHOWNA,SHOWNOACTIVATE,SHOWNORMAL);
TShowCmdValues=array[TShowCmd] of integer;
TShellExecute=class(TComponent)
private
fOpeartionType:TOperationType;
fFileName,fParameters,fDefDirectory:string;
fShowCmd: integer;
procedure SetfShowCmd(Value:TShowCmd);
function GetfShowCmd:TShowCmd;
protected
public
constructor Create(AOwner: TComponent); override;
function Execute(Handle: integer):integer;
published
property OpertionType:TOperationType
read fOpeartionType write fOpeartionType default soOpen;
property FilePath: string read fFileName write fFileName;
property Parameters: string read fParameters write fParameters;
property DefDirectory:string read fDefDirectory write fDefDirectory;
property ShowCommand: TShowCmd
read GetfShowCmd write SetfShowCmd default SHOWNORMAL;
end;
const OPERATIONS_VALUES:TOperationValues=('open','print','explore');
SHOW_CMD:TShowCmdValues=(SW_HIDE,SW_MAXIMIZE,SW_MINIMIZE,SW_RESTORE,
SW_SHOW,SW_SHOWMINIMIZED,SW_SHOWMINNOACTIVE,
SW_SHOWNA,SW_SHOWNOACTIVATE,SW_SHOWNORMAL);
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Nortronic',[TShellExecute]);
end;
constructor TShellExecute.Create(AOwner:TComponent);
begin
inherited Create(AOwner);
fOpeartionType:=soOpen;
fShowCmd:=SW_SHOWNORMAL;
end;
procedure TShellExecute.SetfShowCmd(Value:TShowCmd);
var x:integer;
begin
x:=show_cmd[value];
if fShowCmd<>x then fShowCmd:=x;
end;
function TShellExecute.GetfShowCmd:TShowCmd;
begin
case fShowCmd of
SW_HIDE: Result:=HIDE;
SW_MAXIMIZE: Result:=MAXIMIZE;
SW_MINIMIZE: Result:=MINIMIZE;
SW_RESTORE: Result:=RESTORE;
SW_SHOW: Result:=SHOW;
SW_SHOWMINIMIZED: Result:=SHOWMINIMIZED;
SW_SHOWMINNOACTIVE: Result:=SHOWMINNOACTIVE;
SW_SHOWNA: Result:=SHOWNA;
SW_SHOWNOACTIVATE: Result:=SHOWNOACTIVATE;
SW_SHOWNORMAL: Result:=SHOWNORMAL;
else Result:=SHOWNORMAL;
end;
end;
function TShellExecute.Execute(Handle: integer):integer;
var
pOperation,pFileName,pParameters,pDefDirectory:PAnsiChar;
begin
pOperation:=PansiChar(OPERATIONS_VALUES[fOpeartionType]);
pFileName:=Pansichar(fFileName);
pParameters:=PansiChar(fParameters);
pDefDirectory:=Pansichar(fDefDirectory);
Result:=ShellExecute(Handle,pOperation,pFileName,pParameters,pDefDirectory,fShowCmd);
end;
end.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: как в делфи запустить приложение из директории программы
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*