Zitat: | | Aber: Ich verstehe das Problem nicht: | |
Ok,ok...ich merke es schon (nicht bös gemeint)
Den Fehler bei MoveWindow habe ich ausgemerzt, das funktioniert schonmal jetzt.
Ich versuche es noch einmal
Ich möchte in diesem Code von Marcus W die cmd.exe mit Startargumenten versehen und dann in dem Panel starten. WIE ich Startargumente setze weiss ich, ich frage lediglich nach einer Hilfestellung WO in diesem Beispiel ich diese setzen muss... :
Public Class frmMain
'benötigte APIs
Private Declare Function SetParent Lib "user32.dll" (ByVal hWndChild As _
IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
Private Declare Function ShowWindow Lib "user32.dll" (ByVal hWnd As IntPtr, _
ByVal flag As Integer) As IntPtr
Public Declare Function MoveWindow Lib "user32" (ByVal hwnd As Int32, _
ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, ByVal nHeight As Long, _
ByVal bRepaint As Boolean) As Boolean
'ShowWindow-Konstanten
Private Const SW_NORMAL As Integer = 1
'ProzessID des eingebetteten fensters merken
Private intProgrammID As Integer
Private Sub Starten
StartProgramm("cmd.exe", TabPage1, intProgrammID)
End Sub
Private Sub Stoppen
Try
Process.GetProcessById(intProgrammID).Kill()
Catch
End Try
End Sub
Private Sub StartProgramm(ByVal Programm As String, ByVal Seite As TabPage, _
ByRef ProgrammID As Integer)
'<übergebene Parameter>
'Programm = das Programm, das gestartet werden soll
'Seite = die Seite eines TabControls, auf der das Programm angezeigt
' werden soll
'ProgrammID = ProzessID des aufgerufenen Programms
' ByRef, um mit dem Aufruf des Programms der globalen Variable
' intProgrammID die ProzessID zu übergeben
' (wird in der Prozdur "Stoppen gebraucht)
'</übergebene Parameter>
Dim Handle As IntPtr 'MainWindowHandle des gestarteten Programms
'Programm starten
ProgrammID = Process.Start(Programm).Id
'Warten, bis aufgerufenes Programm ein MainWindowsHandle hat
Do
Application.DoEvents()
Loop Until Process.GetProcessById(ProgrammID).MainWindowHandle <> 0
Handle = Process.GetProcessById(ProgrammID).MainWindowHandle
'DOS-Box in Tabpage einbetten
SetParent(Handle, Seite.Handle)
'WindowState der DOS-Box auf "normal" setzen
ShowWindow(Handle, SW_NORMAL)
'DOS-Box auf TabPage zentrieren
MoveWindow(Handle, 10, 8, 670, 440, True)
End Sub
End Class Falls immer noch nicht verstanden ist, was ich suche, dann versuche ich es erst einmal allein weiter. |