» Utilizator
LAMP
» Parteneri» De citit» Recomandari» Taskuri securitate » Statistici
  • 65486 de mesaje.
  • 7732 de topicuri.
  • 1231 de utilizatori.
  •  
  • Kopotosa e ultimul utilizator inregistrat.
[Detalii]

 

| |
Pagini: [1]
Print

exec(path,cmdline); [623 afisari]

BF Shell



Mesaje: 31
OfflineOffline


Salut!
incerc si eu sa apelez o comanda in dos dar nu merge.

Code:
uses crt,dos;
var
cmdline:string;
begin
clrscr;
write('Comanda:  ');
readln(cmdline);
exec('c:\windows\system32',cmdline);
end.

Precizez ca am folosit TP7.0 si la run nu imi apare nimic
Nu stiu poate nu am facut ceva bine  Tongue
Logged
01-02-2009, 10:53 Twitt ::
DarkByte



Mesaje:

First of all, trebuie sa ai grija de memoria heap, punand
Code:
{$M 8192,4192,65536}
inainte de prima linie a programului.

Apoi, inainte si dupa apelul lui Exec vei folosi SwapVectors, pentru a te asigura ca nu strici handlerele de intreruperi (teoretice hee hee). Apoi calea ta de Windows\System32 nu face mare lucru. Ai nevoie de calea catre command.com, care o poti lua cu
Code:
GetEnv('COMSPEC')

Pentru a ii spune lui command.com ca vrei sa execute comanda care i-o dai, va trebui sa-i dai si un parametru /C.

Codul final ar arata ceva in genul asta :
Code:
uses crt,dos;
var cmdline:string;
begin
  clrscr;
  write('Comanda:  ');
  readln(cmdline);

  SwapVectors;
  exec(GetEnv('COMSPEC', '/C ' + cmdline);
  SwapVectors;

  ReadKey;
end.

P.S. daca nu functioneaza, nu e nici o problema. Nici mie, pentru ca l-am scris direct aici (basically, nu e testat Tongue)
Logged
01-02-2009, 15:45 Twitt ::
BF Shell



Mesaje: 31
OfflineOffline


se pare ca nu merge!
Il compilez,ii dau run si dupa ce scriu o comanda ex: ping yahoo.com ,se muta cursoru la urmatoarea linie si nimic.

Am mai incercat sa-i dau calea /c:/windows/system32  dar tot nu merge Crying
Logged
01-02-2009, 16:29 Twitt ::
BF Shell



Mesaje: 31
OfflineOffline


Gata am reusit uitasem de asta:{$M 8192,4192,65536} Tongue

totusi nu inteleg ce e cu adresa aia
Logged
01-02-2009, 16:34 Twitt ::
DarkByte



Mesaje:

E vorba de cata memorie isi va aloca programul tau. La lansarea command.com-ului va avea nevoie de memorie in plus, that's all (so, nu e adresa Tongue). Acelasi lucru il poti seta din Turbo Pascal 7.0 din meniul Options, optiunea Memory Sizes, primele 3 valori.

Bafta
Logged
01-02-2009, 19:37 Twitt ::
Pagini: [1]
Print
SkullBox Forum  |  Development  |  Delphi & Pascal  |  Topic: exec(path,cmdline);