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

kylix - slanje komandi

[es] :: Pascal / Delphi / Kylix :: kylix - slanje komandi

[ Pregleda: 3140 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

_tux_rulez
rabjorn speiler

Član broj: 5510
Poruke: 70
*.as54.ze-old.bih.net.ba.



Profil

icon kylix - slanje komandi 06.07.2003. u 16:17 - pre 253 meseci
zanima me jedna "jednostavna" stvar - kako da pomoću kaylixa (delphi) šaljem komande terminalu i ponovo ucitavam response tih komandi, odnosno da npr dodijelim kod nekom objektu UKLONI PROGRAM ICedEarth - da posalje komandu rpm -e icedearth ...ili vec neku drugu glupost

Tux The Killer
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.verat.net

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: kylix - slanje komandi 06.07.2003. u 22:41 - pre 253 meseci
hmm, pazi ovo pitanje nema mnogo veze bash tacno sa delphijem, u sustini pogledaj kako iz kylixa da zoves sitemske pozive. u sustini tebi treba pipe ako ces da vrsis komunikaciju sa programom, tj da mu pises na stadardni ulaz ili da citas program sa standardnog izlaza. u principu pogledaj ovo:

man 2 pipe
man 2 fork
man 2 dup2
man 3 exec

tu je sve sto ti je potrebno u principu. Koristiti system funkciju i nije tako pametno. Ako ti treba detaljnije objasnjenj poslacu ti C primer.
 
Odgovor na temu

silverglider

Član broj: 651
Poruke: 218
*.batalpha.de

Sajt: www.benchmark.co.yu


Profil

icon Re: kylix - slanje komandi 07.07.2003. u 12:08 - pre 253 meseci
Sve ovo imas definisano u Libc unitu - pogledaj source u:
<kylix dir>/source/rtl/linux/libc.pas

Pogledaj tu funkciju 'popen'.
 
Odgovor na temu

_tux_rulez
rabjorn speiler

Član broj: 5510
Poruke: 70
*.as54.ze-old.bih.net.ba.



Profil

icon Re: kylix - slanje komandi 16.10.2003. u 00:39 - pre 249 meseci
Evo mali programcic na ovu temu, medjutim radi se o pokrecanju grafickih programa:

uses Libc;

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
prog : String;
Result : Integer;
begin
 prog := Edit1.Text;
 Result := Libc.system(PChar(prog));
 if Result = -1 then
 begin
  ShowMessage('Ne postoji komanda');
 end;
 close;
end;


Međutim progic, ne radi kada se direktno pokrene iz kylix, IDE-a, ali onaj kompajlirani exe, koji ostane, kada se samo on pokrene, van kylix IDE-a, progic radi. Ne znam do cega je. Također jedna stvar, kada pokrenem npr. Mozillu progic se zaglavi, jednostavno ceka dok mozilla ne zavrsi sa radom, pa se onda odglavi. Kako ovo rijesiti? Znaci da ne ceka dok se zavrsi rad pokrenutog Programa?
HAIL
Tux The Killer
 
Odgovor na temu

_tux_rulez
rabjorn speiler

Član broj: 5510
Poruke: 70
*.as54.ze-old.bih.net.ba.



Profil

icon Re: kylix - slanje komandi 16.10.2003. u 00:47 - pre 249 meseci
Također kako koristiti sljedeću funkciju, odnosno kako joj slati parametre i sl.

Uses Libc;
Code:
 function StartApp(name: string; arguments: array of string;waitfor:boolean=false): Integer;
var
  pid: PID_T;
  Max: Integer;
  I: Integer;
  parg: PPCharArray;
  argnum: Integer;

begin
  Result := -1;

  pid := fork;

  if pid = 0 then
  begin
    Max := sysconf(_SC_OPEN_MAX);
    for i := (STDERR_FILENO+1) to Max do
    begin
      fcntl(i, F_SETFD, FD_CLOEXEC);
    end;

    argnum := High(Arguments) + 1;

    GetMem(parg,(2 + argnum) * sizeof(PChar));
    parg[0] := PChar(Name);

    i := 0;

    while i <= high(arguments) do
    begin
      inc(i);
      parg[i] := PChar(arguments[i-1]);
    end;

    parg[i+1] := nil;
    execvp(PChar(name),PPChar(@parg[0]));
    halt;
  end;

  if pid > 0 then
  begin
    if waitfor then begin
        result:=-1;
        while (result=-1)  do begin
            application.processmessages;
            waitpid(pid,@Result,wnohang);
        end;
    end;
  end;
end;

Tux The Killer
 
Odgovor na temu

Milos D
Beograd

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



+1 Profil

icon Re: kylix - slanje komandi 16.10.2003. u 19:10 - pre 249 meseci
Deluje da ta funkcija moze da pokrene program bez da ceka na kraj njegovog izvrsavanja. Parametre prosledjujes verovatno ovako:

StartApp ('/nekipath/nekiprogram', ['-prvi_parametar', '-drugi_parametar'])
 
Odgovor na temu

_tux_rulez
rabjorn speiler

Član broj: 5510
Poruke: 70
*.as54.ze-old.bih.net.ba.



Profil

icon Re: kylix - slanje komandi 18.10.2003. u 16:26 - pre 249 meseci
DA, u pravu ste. StartApp funkcija nije moja kreacija, dok ova procedure TForm1.Button1Click(Sender: TObject); 'jeste', zato sam postavio to pitanje za ovu proceduru. Znaci, kako i sta uraditi da program se ne zaledi, sve dok se pokrenuta aplikacija ne ugasi.

Unaprijed Hvala
Tux The Killer
 
Odgovor na temu

Milos D
Beograd

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



+1 Profil

icon Re: kylix - slanje komandi 19.10.2003. u 18:55 - pre 249 meseci
Hvala na ovom kodu, bas sam trazio takvu funkciju. Ne znam kakvih problema imas sa njom, ali meni radi. Na primer, ovo:

StartProgram ('/usr/bin/mozilla', ['/usr/home/someone/test.html']);

sasvim lepo otvara navedeni fajl u browser-u, pri cemu sam program ostaje ziv, tj. ne ceka da se browser iskljuci. Ako sam dobro shvatio princip rada, ovaj fork je veoma zanimljiva stvar.
 
Odgovor na temu

_tux_rulez
rabjorn speiler

Član broj: 5510
Poruke: 70
*.as54.ze-old.bih.net.ba.



Profil

icon Re: kylix - slanje komandi 20.10.2003. u 15:05 - pre 249 meseci
http://grungy.lugze.org/doc_ware/

Dobar dokumenat, na ovu temu....
Tux The Killer
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: kylix - slanje komandi

[ Pregleda: 3140 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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