Hallo alle zusammen ich mal wieder
Ich hab ein neues Problem und zwar wollte ich cmd.exe in einer Windows Form per Panel anzeigen lassen. Für ein anderes Programm funktioniert das wunderbar (z.b. notepad.exe) Aber:
Jedes mal wenn ich es mit einer Console versuche bekomme ich folgende Fehlermeldung: Fehler bei WaitForInputIdle. Möglicherweise hat der Prozess keine Grafische Schnittstelle. (als MsgBox)
Hier im Forum habe ich es immer nur mit Notepad gesehen aber nie wie das mit der Console funktioniert.
Hier ist mal mein Code:
Wenn das überhaupt nicht geht einfach bescheid sagen dann hat sich das auch schon erledigt
Gruß OneWorld
Ich hab ein neues Problem und zwar wollte ich cmd.exe in einer Windows Form per Panel anzeigen lassen. Für ein anderes Programm funktioniert das wunderbar (z.b. notepad.exe) Aber:
Jedes mal wenn ich es mit einer Console versuche bekomme ich folgende Fehlermeldung: Fehler bei WaitForInputIdle. Möglicherweise hat der Prozess keine Grafische Schnittstelle. (als MsgBox)
Hier im Forum habe ich es immer nur mit Notepad gesehen aber nie wie das mit der Console funktioniert.
Hier ist mal mein Code:
VB.NET-Quellcode
- Public Class Win32Api
- <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
- Public Shared Function ShowWindow( _
- ByVal hWnd As IntPtr, _
- ByVal nCmdShow As Integer) As Boolean
- End Function
- <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
- Public Shared Function SetParent( _
- ByVal hWndChild As IntPtr, _
- ByVal hWndNewParent As IntPtr) As IntPtr
- End Function
- Public Const SW_MAXIMIZE As Int32 = 3
- End Class
- Private Sub SetApplicationAsChild(ByVal CallingApplication As String, _
- ByVal p As System.Windows.Forms.Panel)
- Try
- Dim hProcess As System.Diagnostics.Process = _
- System.Diagnostics.Process.Start(CallingApplication)
- hProcess.WaitForInputIdle()
- Win32Api.SetParent(hProcess.MainWindowHandle, p.Handle)
- Win32Api.ShowWindow(hProcess.MainWindowHandle, Win32Api.SW_MAXIMIZE)
- Catch ex As Exception
- MessageBox.Show(ex.Message.ToString(), "Info")
- End Try
- End Sub
- Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- Const APP_NAME As String = "cmd.exe"
- SetApplicationAsChild(APP_NAME, Panel1)
- End Sub
Wenn das überhaupt nicht geht einfach bescheid sagen dann hat sich das auch schon erledigt
Gruß OneWorld
Youtube Info Library 2013 jetzt im Showroom.