» Utilizator
Salut, vizitatorule!

SkullBox este o comunitate formata din programatori si administratori de sisteme sau retele care iti sta la dispozitie cand ai o problema legata de calculatoare. Daca esti un utilizator existent, autentifica-te.

Daca nu te-ai inregistrat inca pe forum, alatura-te noua astfel marind comunitatea si ajutandu-i pe cei care au nevoie de informatii.

Daca te-ai inregistrat dar inca nu ai primit codul de activare, il poti cere aici.




Autentifica-te cu numele de utilizator si parola pentru a putea posta pe forum sau pentru a accesa ariile disponibile doar utilizatorilor inregistrati.
» Promovam
» Parteneri » Statistici
  • 59774 de mesaje.
  • 7153 de topicuri.
  • 1000 de utilizatori.
  •  
  • PatentLawer e ultimul utilizator inregistrat.
[Detalii]

 
Pagini: [1]
Print
exec(path,cmdline); [460 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: 3333
OfflineOffline

WWW

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

Document my code? Why do you think it's called "code"?

To think is to differ - Clarence Darrow
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

» :P

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: 3333
OfflineOffline

WWW

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

Document my code? Why do you think it's called "code"?

To think is to differ - Clarence Darrow
01-02-2009, 19:37 Twitt ::
Reclama
VIP

Hosting

Mesaje: 25.90
OnlineOnline

WWW
 

   Pe ABCDomenii: 250MB spatiu + 20GB trafic + 5 subdomenii = 0.95 €
 
 

The problem with troubleshooting is that trouble shoots back.
Azi 
Pages: [1]
Print
SkullBox Forum  |  Development  |  Delphi & Pascal (Moderator: AdyX)  |  Topic: exec(path,cmdline);
Jump to: