Lanciare un'applicazione console con Process.Start

sabato 21 marzo 2009 - 01.00

gudefran Profilo | Newbie

Salve a tutti.
Sto realizzando una interfaccia grafica per il gioco dell'Othello. Sulla finestra principale ho posizionato un Button il quale, una volta cliccato, avvia un engine di gioco esterno (un programma console che effettua il calcolo della mossa). Avvio l'engine con le seguenti istruzioni:
Engine.StartInfo.UseShellExecute = False
Engine.StartInfo.CreateNoWindow = True
Engine.StartInfo.RedirectStandardOutput = True
Engine.StartInfo.RedirectStandardInput = True
Engine.StartInfo.FileName = Proc
Engine.EnableRaisingEvents = True
AddHandler Engine.OutputDataReceived, AddressOf Me.ReadDati ' intercetta il flusso dei dati
Engine.Start()
Scrivo = Engine.StandardInput ' invia i comandi all'engine
Scrivo.AutoFlush = True
Engine.BeginOutputReadLine() ' avvio la lettura asincrona dei dati

Premendo nuovamente il pulsante viene inviato il comando "quit" all'engine che si interrompe da se'. Comunque segue l'istruzione Engine.Close() per sicurezza. La Sub ReadDati invia le informazioni ricevute
in una TextBox.
Il tutto funziona perfettamente. Engine e' definito come New Process e Scrivo come StreamWriter all'inizio della classe Form1.
Il problema e' che posso avviare questo Engine solo una volta. Se lo interrompo e lo riavvio una seconda volta ,nella stessa sessione, il processo risulta avviato ma non viene intercettato alcun flusso dalla Sub ReadDati.Dove sbaglio?

gudefran Profilo | Newbie

Ho risolto il problema. Nella Sub in cui avvio l'Engine e' necessario aggiungere la dichiarazione Engine = New Process, in aggiunta alla dichiarazione generale Dim Engine as New Process che si trova all'inizio della classe Form1.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5