Wciskanie klawiszy do aplikacji DOS

0

Napisałem sobie prościutki programik, który obsługuje inny program DOSowy. Zamiast wstukiwać parametry, ustawia się wszystko z GUI, a jest tez możliwośc wykonywania programu na wielu plikach (wsadowy).
I tu mam problem. Za każdym razem ten DOSowy konsolowiec wyświetla swoje konsolowe okno z pytaniem "czy chcesz kontynuować [y/n]?" i musze mu wbijać "y", "Enter".
Raz może to zrobię, ale w trybie wsadowym, przypuśćmy, 50 plików, wypada to nieco blado...
Więc, czy dałoby się w otwartej konsolce wirtualnie "powciskac klawisze" z poziomu programu w Delphi? Jak to zrobić?

Dobrze by było też, aby program konsolowy nie pokazywał się, a wyświetlał swoje wyniki "na żywo" gdzieś w moim programiku.
MCbx

P.S. szukałem, "DOS, "Konsolowy" itd...

0

Kiedyś się bawiłem w kontrolę nad konsolką i używałem do tego TDosCommand:
http://maxxdelphisite.free.fr/doscmd.htm

0

Kiedyś robiłem np. tak: w pliku wsadowyn:
Time < yes.txt
Yes.txt to plik w którym znajduje się jeden pusty wiesz (CR+LF). U Ciebie będzie Y+CR+LF.
Zadziała jeżeli program czyta ze standardowego wejścia, lecz wiele programów tego nie robi. Poszukaj o bios?ie PC, było przerwanie umożliwiające wstawienie znaku do bufora klawiatury. Samemu też można zmodyfikować wskaźniki kolejki FIFO klawiatury.
O mam, ale trzeba napisać maleńki programik DOSowy
http://www.htl-steyr.ac.at/user/~morg/pcinfo/hardware/interrupts/inte2ai8.htm
Napisalem "yes.com", wciska "Y" i Enter do bufora klawiatury (11 kB, Turbo 3.02, ach wspomnień czar ;-)
Ale jak Ci to wysłać?
Można też w 18 bajtach, szesnastkowo:
$b8,$00,$05,
$b9,$79,$00,
$cd,$16,
$b8,$00,$05,
$b9,$0d,$00,
$cd,$16,
$cd,$20
zapisz tych 18 bajtów jako np. YES.COM

    mov ax, 0500
    mov cx, 0079  ; y
    int   16
    mov ax,0500
    mov cx,000d  ; ENTER
    int 16
    int 20
0

Wziąłem komponent DosCommand, i np. na CMD.EXE wychodzi, mam wyniki na Memo w czasie rzeczywistym i moge pchać do programu poleceniem SendLine, ale jest pewien problem - o ile wychodzi CMD.EXE, o tyle po wykonaniu tego programu DOS, o który mi chodzi, na Memo nic się już nie ukazuje. Program nie korzysta z grafiki. Czy możliwe jest, że to z powodu użycia przez program formantów graficznych (podmiana czcionek)?

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