PDA

View Full Version : [DELPHI 6] - Lanciare una applicazione esterna


Grem
06-10-2003, 12:11
Scusate la mia ignoranza, ma vorrei lanciare un eseguibile tramite un launcher che sto scrivendo, solo che non ho la minima idea di come fare.
Ho scritto la seguente procedura:


procedure TfrmLauncher.Button2Click(Sender: TObject);
var
MyFile: TCustomFileRun;
begin
CmdLine := Edit1.Text;
MyFile.FileName := CmdLine;
MyFile.Operation := 'open';
MyFile.ExecuteTarget(Sender);
end;


e naturalmente ho incluso la unit ExtActns.
Il mio scopo è quello di passare una linea di comando all'eseguibile.

Ovviamente, la procedura non funziona e mi restituisce un errore di Violazione d'Accesso.

Come devo fare?

Un'altra cosa: dove trovo un po' di documentazione sull'argomento?

Grazie. ;)

Grem
06-10-2003, 17:27
Aggiornamento: ho scoperto l'esistenza (dell'acqua calda, lo so :D) della unit ShellAPI ed ho usato questa procedura:


ShellExecute(0, 'open', 'myfile.exe', PChar(CmdLine), PChar(Value), SW_SHOWNORMAL);

Adesso l'eseguibile parte, ma non gli vengono passati i parametri della linea di comando.
Come fare? :wtf:

gokan
06-10-2003, 17:53
Originariamente inviato da Grem
Aggiornamento: ho scoperto l'esistenza (dell'acqua calda, lo so :D) della unit ShellAPI ed ho usato questa procedura:


ShellExecute(0, 'open', 'myfile.exe', PChar(CmdLine), PChar(Value), SW_SHOWNORMAL);

Adesso l'eseguibile parte, ma non gli vengono passati i parametri della linea di comando.
Come fare? :wtf:
Ti pongo subito un esempio.Al click di un bottone su una form, viene disconnesso il collegamento ad internet.

procedure TfmMain.btScollegatiClick(Sender: TObject);
var
cmd, par, fil, dir: PChar;
begin
// disconnect the connection to the Internet
cmd := 'open';
fil := 'rasdial.exe';
par := PChar(lbNome.Caption + ' /DISCONNECT');
dir := 'C:';
ShellExecute(Self.Handle, cmd, fil, par, dir, SW_SHOWMINNOACTIVE);
end;

Spero ti sia utile.Guardati bene la guida.
ciao

Grem
06-10-2003, 18:26
Originariamente inviato da gokan

Spero ti sia utile.Guardati bene la guida.
ciao

Ti ringrazio, ho risolto cmq. ;)
Era un problema di assegnazione dei valori, non funzionava per una cappellata mia. :muro:
Adesso è tutto a posto.