Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pokretanje *.exe fajla?

[es] :: Pascal / Delphi / Kylix :: Pokretanje *.exe fajla?

[ Pregleda: 4122 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

gygy
Dragan Grbic

Član broj: 7861
Poruke: 205
*.sezampro.yu



Profil

icon Pokretanje *.exe fajla?27.11.2003. u 23:03 - pre 248 meseci
Kako da na primer kad kliknem na Button1 da pokrene odgovarajuci exe fajl, na primer moj program se nalazi u jednom direktorijumu nije bitno gde i sad zelim da on pokgere aplikaciju koja je u poddirektorijumu npr "exe\proba.exe".
Probao sam sa ovom funkcijom ali nista se ne desava
Code:

procedure TForm1.Button1Click(Sender: TObject);
var
proc_info: TProcessInformation; 
startni_info: TStartupInfo; 
begin 
// inicijalizacija 
FillChar(proc_info, sizeof(TProcessInformation), 0);
FillChar(startni_info, sizeof(TStartupInfo), 0); startni_info.cb := sizeof(TStartupInfo);
// pokusaj kreiranja procesa
if CreateProcess('exe\proba.exe', nil, nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, startni_info, proc_info) <> False then
begin 
// proces je uspesno kreiran i
//ceka se njegovo okoncanje... 
WaitForSingleObject(proc_info.hProcess, INFINITE);
// Proces je zavrsen. Možemo ga zatvoriti
CloseHandle(proc_info.hProcess); Application.MessageBox('zavrsio rad!', 'Info', MB_ICONINFORMATION);
end 
else begin 
// nemogućnost kreiranja procesa
Application.MessageBox('Nije moguce izvrsiti ' + 'application', 'Error', MB_ICONEXCLAMATION);
end;
end; 
i nista se ne desava?
da li postoji i neki drugi kod, posto ovaj nije ispravan tj nece da otvori aplikaciju?
Hvala unapred!!!
GYGY
GYGY
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.180.EUnet.yu



+1 Profil

icon Re: Pokretanje *.exe fajla?27.11.2003. u 23:15 - pre 248 meseci
Jesi li probao da stavis punu putanju do exe-a a ne "exe\proba.exe" ?

Takodje, kod koji koristis ceka da ti se proces koji si pokrenuo zavrsi, da li si siguran da to hoces?


Takodje imas i

WinExec("C:\Program Files\prg.exe", ...)
 
Odgovor na temu

erekoz
John Doe
Beograd

Član broj: 5960
Poruke: 148
*.tvmetropolis.com



Profil

icon Re: Pokretanje *.exe fajla?27.11.2003. u 23:18 - pre 248 meseci
Evo ovaj kod sljaka, saljem integralnu verziju, pre imena fajla samo ubaci putanju do
njega npr. : c:\nekifolder\nekapalikacija.exe


unit fMain;
{===============================================================================
Description: This example demonstrates how to use ShellExecute to execute an
external application.
System: Examples.
Notes: - ShellAPI must be included in the uses clause.
Copyright: Copyright © 2000, CazTec Computer Systems cc.
This code can be modified and redistributed in any way that you
see fit.
--------------------------------------------------------------------------------
Revisions
--------------------------------------------------------------------------------
{ #@20000709-CC Created by Carl Clark ([email protected])
===============================================================================}

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ShellAPI, StdCtrls, ExtCtrls;

type
TfrmMain = class(TForm)
btnExecuteNotepad: TButton;
imgeExample: TImage;
lblExampleDsc: TLabel;
procedure btnExecuteNotepadClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmMain: TfrmMain;

implementation

{$R *.DFM}

procedure TfrmMain.btnExecuteNotepadClick(Sender: TObject);
begin
ShellExecute(Handle, 'open', 'notepad.exe', '', '', SW_NORMAL);

{ #@20000709-CC Other examples.

This example would attempt to open the bootlog.txt file into Notepad.
ShellExecute(Handle, 'open', 'notepad.exe', 'c:\bootlog.txt', '', SW_NORMAL);

This example would print the bootlog.txt file.
ShellExecute(Handle, 'print', 'notepad.exe c:\bootlog.txt', '', '', SW_NORMAL);
}
end;

end.
 
Odgovor na temu

gygy
Dragan Grbic

Član broj: 7861
Poruke: 205
*.flashnet.co.yu.



Profil

icon Re: Pokretanje *.exe fajla?28.11.2003. u 01:21 - pre 248 meseci
Narode sljaka i moj kod kad mu ubacim c:\proba\:
....
if CreateProcess('c:\proba\exe\proba.exe', nil, nil, nil, false, NORMAL_PRIORITY_CLASS, nil, nil, startni_info, proc_info) <> False then
begin
....
imam ja i nesto na ovaj fazon:
ShellExecute(Handle,nil,''c:\proba\exe\proba.exe'',nil,nil,SW_SHOWNORMAL);
i to sljaka.
...
ali ja zelim da radi bez toga c:\proba\, posto mi je moj program npr u jednom folderu i u tom podfolderu imam folder EXE gde su smesteni jos neki programi i sad zelim da kad taj folder iskopiram bilo gde na disk da on radi!
Da li sam sad bio jasniji?
Pozdrav!!!
GYGY
GYGY
 
Odgovor na temu

overflow
Goran Milosavljević
Integration & Internet Senior
Engineer @ Telenor
Beograd

Član broj: 396
Poruke: 345
*.vdial.verat.net

ICQ: 106825659
Sajt: localhost


Profil

icon Re: Pokretanje *.exe fajla?28.11.2003. u 08:31 - pre 248 meseci
Sa bilo kojim gore navedenim nacinom pozivanja pozovi:

ExtractFilePath(Application.EXEName)+'exe/proba.exe'

P.S. Mislim da ce ti trebati jedan polu-casting PChar(ExtractFilePath(Application.EXEName)+'exe/proba.exe') pre svega ovoga.
Sve sto je besmislenije, utoliko je bolje.
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.ptt.yu



+1 Profil

icon Re: Pokretanje *.exe fajla?28.11.2003. u 09:01 - pre 248 meseci
Ako je EXE folder uvek u folderu tvoje aplikacije, onda uvek možeš da znaš punu putanju do njega:

ExtractFilePath(Application.ExeName)+'\EXE'


Ooooops... zakasnio sam sa odgovorom... :)
 
Odgovor na temu

gygy
Dragan Grbic

Član broj: 7861
Poruke: 205
*.flashnet.co.yu.



Profil

icon Re: Pokretanje *.exe fajla?29.11.2003. u 00:03 - pre 248 meseci
Momci mnogo vam hvala!!!
evo ga gotov kod:
Code:

     ShellExecute(Handle,nil,PChar(ExtractFilePath(Application.EXEName)+'\EXE\proba.exe'),nil,nil,SW_SHOWNORMAL);

POZDRAV
GYGY
GYGY
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Pokretanje *.exe fajla?

[ Pregleda: 4122 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.