Kilka pytań dotyczących programów konsolowych

0

Cześć mam kilka pytańdotyczących programów konsolowych (dosowych), nie wiem czy poprawnej nazwy użyłem określających takie programy.

  1. Czy jest jakiś sposób możliwe aby program typu ".exe" zwrócił wynik swoje działania. Np. uruchamiam program, który uruchamia drugi (np. przez comendę Exec w Pascalu, lub shellExecute w Delphi) a ten zwraca wynik, tylko nie wpostaci np. że wyświetli go na ekranie tylko jak określony argument. W dosie istaniał taki programik jak choice i można go było stosować do plików ".bat" - skrypty i zastanawia mie jak swoją wartośc przekazuje do skryptu lub programu.

  2. Drugie pytanie jest dość skomplikowane, albo tak mi się wydaje.
    Chciałbym zrobic programik, który by otwierał programy konsolowe, tak jak program w Windowsie "cmd.exe". Wysztkie programy dosowe są otwierane właśnie w okienku. Chciałbym zrobić taki programik aby dosowe programy w nim się otwierały (na swój spodób zmienić jego działanie). Może wiem z was jak to zrobić, albo przynajmniej jak zabrać się za to, jakiś wskazówki.
    (Programuje w Delphi.

0

hej ;)

Co do pierwszego punktu to masz dwa sposoby:

{przykładowe uruchomienie jakiegoś programu z parametrem ,schowanym oknem i zapisem wyniku do pliku}

WinExec('command.com /c c:\windows\ping.exe 213.180.130.200 >C:\plik.txt',SW_Hide);
Sleep(1000) ; //jakieś tam spowolnienie by dać czas na zapisanie pliku treścią
{ten plik wczytujesz w jakiś TStringList i pobierasz dane z linii która Cie interesuje - następnie kasujesz ten plik}
  1. Sposób jest tu na bank bo widziałem - jak władować wynik programu
    dosowego bezpośrednio w delphi. Piękny kodzik tak na boku zaznaczę :)

A co do drugiego pytania to jak dobrze zrozumiałem - przecież możesz
użyć tego samego sposobu co powyżej:

procedure TForm1.Button1Click(Sender: TObject);
var
 exec :String;
begin
exec:= 'c:\windows\ping.exe 213.180.130.200';
WinExec( PChar('command.com /c '+ exec ),SW_Normal);
end;

W zmienną "exec" wpisujesz jaki program masz uruchomić i tyle,
a okienko bedziesz miał zawsze konsolowe wywoływane przez command.com

1 użytkowników online, w tym zalogowanych: 0, gości: 1