View Full Version : programma che controlla programma DOS
pietronaif
25-10-2004, 09:17
devo realizzare un programmino che mi controlla un programma "vecchio" che gira nel prompt di dos ricevendo input dalla linea di comando, in modo da farlo iterare più volte, a seconda della mia volontà, mettendoci naturalmente ogni volta dati diversi, che linguaggio mi consigliate??
io conosco bene il c e il java, mi sto avvicinando a delphi, sapete se c'è qualche libraria che fa al caso mio (meglio se java..) ?
ah.. il programma in dos è utilizzabile solo dopo averlo eseguito..(insomma non accetta parametri..) qualche consiglio??
se il programma non è a 16 bit usa CreateProcess redirigendo input e output a due named pipes create da te (vedi std handles nella struttura STARTUPINFO); se è a 16 bit mi sa che non puoi lanciarlo da CreateProcess, ma dovevi fare in 1 altro modo, nn sn del tutto sicuro, dovrei controllare in MSDN.
x quanto riguarda il linguaggio io per la programmazione Win32 consiglio sempre C++, meglio se C; poi fai tu...
pietronaif
26-10-2004, 09:03
penso che ci provo col C che almeno lo conosco bene! non so però come il processo già compilato in dos possa rispondere alla mia pipe... mmm qualche aiuto??
in python risparmi di fegato
Originariamente inviato da pietronaif
penso che ci provo col C che almeno lo conosco bene! non so però come il processo già compilato in dos possa rispondere alla mia pipe... mmm qualche aiuto??
te l'ho detto: devi settare gli std handles.
mi spiego meglio: tu crei due named pipes, una per l'input e una per l'output (forse si può fare tutto con una sola pipe, ma nn lo so xkè non le ho mai usate); a questo punto devi creare il processo con CreateProcess: a CreateProcess gli devi passare (fra le altre cose) un puntatore ad una STARTUPINFO, la quale (fra le altre cose) contiene gli std handles, che tu setterai con gli handles delle tue named pipes; in questo modo tutto l'input proverrà da una delle tue named pipes, e tutto l'output andrà a finire sull'altra.
questo è esattamente il sistema usato dagli IDE per redirigere l'output dei compilatori alla finestrella dei messaggi che in genere si trova in basso.
pietronaif
26-10-2004, 15:12
ah già non avavo mai usato questo STARTUPINFO... devo vedermelo un attimo...
le pipe invece ce ne vogliono 2 per forza.. perche in c sono unidirezionali..(o meglio le potresti anche usare in 2 direzioni ma a rischio e pericolo di blocchi...)
ora vedo se riesco a far qualcosa.. beh grazie x ora!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.