Programm in einem Fenster öffnen
-
hi
ich möchte von einer windows application ( einem Formular )aus ein programm starten das dann in diesem formular eingeschlossen ist öffnen.
also programm in dem hauptfenster integreirt.würde mich über hilfe freuen
(ich programmier in [cs] aber code in c++ ist auch gut)gruss robin
-
Welche Absicht verfolgst du denn mit deinem Vorhaben? Mit der Win32API-Funktion SetParent kannst du das erreichen.
using System; using System.Drawing; using System.Windows.Forms; using System.Runtime.InteropServices; namespace Test { public class Win32Interop { [DllImport("user32")] public static extern int SetParent(System.IntPtr hWndChild, System.IntPtr hWndNewParent); } public class FrmMain : System.Windows.Forms.Form { public FrmMain() { this.IsMdiContainer = true; this.Size = new System.Drawing.Size(500,500); this.Text = "Test12345"; this.Load += new System.EventHandler(this.FrmMain_Load); } private void FrmMain_Load(object sender, System.EventArgs e) { System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcessesByName("calc"); if (processes.Length == 0) { MessageBox.Show("Prozess nicht gefunden"); } else { if (Win32Interop.SetParent(processes[0].MainWindowHandle,this.Handle)==0) { MessageBox.Show("Fehlgeschlagen"); } else { MessageBox.Show("Erfolgreich"); } } } [STAThread] static void Main() { Application.Run(new FrmMain()); } } }
-
glaube das könntes sein.
aber wenn ich das so laufen lass kommt die meldung "Prozess nicht gefunden"und zu dem was ich damit machen muss:
ich mach im mom mein praxissemester und muss ein programm schreiben mit dem ich SolidWorks( 3d cad system ) per api zugriff habe.
muss die 3d objekte tB. bewegen.
und möchte das das solidworks in meinem programm ist also programm in form
und über mein programm das solidworks über buttons irgend welche funktionen ausführen lasse...gruss robin
-
Ein bisschen Eigenanteil bitte
Dann würdest du auch sehen, dass das Programm nach einem bereits vorhandenen calc-Prozess (Windows-Taschenrechner) sucht, um ihn einzusperren.