Ausführen von exe-innen WinForm-Projekt Tab
Ich interessiere mich für Hilfe bei den folgenden mit einer winform-Anwendung, die ich Schreibe, öffnet sich in einem tab ein .exe in c# in der Visual Studio 2010 IDE.
Ich bin derzeit in der Lage, um das Programm zu öffnen über die Schaltfläche klicken Sie auf die gewünschte Registerkarte mit dem folgenden code:
string str = @"-INSERT FILEPATH HERE-";//took file path out as i have a few exes i'm wanting to add.
Process process = new Process();
process.StartInfo.FileName = str;
process.Start();
nun, wie kann ich es so machen, dieser ausführbaren Datei öffnet sich als tab oder in einem tab in meinem winform? Ich bin offen für Vorschläge, das zu tun jedem Fall.
GELÖST:
using System.Runtime.InteropServices;
using System.Threading;
[DllImport("user32.dll", SetLastError = true)]
private static extern bool MoveWindow(IntPtr hwnd, int x, int y, int cx, int cy, bool repaint);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
public GUI()
{
//Initialize form fieds
InitializeComponent();
openProgram()
}
private void openProgram()
{
process.StartInfo.FileName = "-filepathhere-";
process.Start();
IntPtr ptr = IntPtr.Zero;
while ((ptr = process.MainWindowHandle) == IntPtr.Zero) ;
SetParent(process.MainWindowHandle, trackerPanel.Handle);
MoveWindow(process.MainWindowHandle, 0, 0, this.Width - 90, this.Height, true);
}
- meinten Sie mithilfe der
TabControl
imwinforms
? - ja, ich möchte es im Register als Register.
- so Sie versuchen, öffnen Sie den Editor innerhalb der TabControl, könnten Sie versuchen, verwenden Sie die
richTextBox
für diese Aufgabe. - nicht notepad, aber ja muss ein Programm zu öffnen in das tabcontrol-Steuerelement.
- Hi @PhoenixLament, können Sie Ihre eigene Antwort sieht genial aus. Können Sie uns mehr details, ich füge den code auf meiner form bekomme aber Fehler im Zusammenhang mit namespaces. Ich habe bereits importiert user32.dll jedoch das gleiche wie Sie, können nicht instanziieren jede app nur in einem Schaltschrank. Dank
- das war vor langer Zeit, aber wenn Sie möchten, schicken Sie mir Ihr Projekt, kann ich es betrachten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie mit der SetParent-api, um den Eltern der ausführbaren Fenster. Fügen Sie ein panel, um Ihre TabControl-Steuerelement, und verwenden Sie den folgenden code zuordnen, um die Eltern der ausführbaren Datei-Fenster der Systemsteuerung.
Entfernen Sie das Fenster aus der Systemsteuerung, verwenden Sie den gleichen code, aber setzen die Eltern handle as IntPtr.Null