Asynchroner Lesevorgang von Commandline in GUI



  • Hallo zusammen,

    ich versuche zurzeit während der Laufzeit meines Commandozeilen-Tools den Standardoutput abzufangen und auf meiner GUI auszugeben.

    Ich habe folgenden Code (ich hoffe ich stelle ihn hier im Forum korrekt dar)

    private: Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    
    				 p->StartInfo->FileName = CMD_INTERFACE;
    				 p->StartInfo->UseShellExecute = false;
    				 p->StartInfo->ErrorDialog = false;
    				 p->StartInfo->RedirectStandardOutput = true;
    				 p->StartInfo->RedirectStandardError = true;
    				 p->EnableRaisingEvents = true;
    				/* p->StartInfo->CreateNoWindow = true; */
    				 output = gcnew StringBuilder("");
    				 p->Start(); 
    				 p->OutputDataReceived += gcnew DataReceivedEventHandler(this,&menue::outputHandler);
    				 p->BeginOutputReadLine();
    				 this->textBox1->Text = output->ToString();
    			}
    
    	private: Void outputHandler(Object^ sender, DataReceivedEventArgs^ outLine)
    			 {
    				 if(!String::IsNullOrEmpty(outLine->Data))
    				 {
    					 output->Append(outLine->Data);
    				 }
    			 }
    

    Es tut sich leider jedoch gar nichts. Beim Debuggen springt er nicht einmal in die outputHandler Funktion. Was mache ich falsch?

    Grüße Crusaderxx


Anmelden zum Antworten