/// <summary> /// Fügt einen Ordner hinzu. /// </summary> /// <param name="path"></param> private void ordnerHinzufügen(string path) { IntPtr Handle = new IntPtr(); WindowManager wm = new WindowManager(); Handle = wm.OpenFolderGetHandle(path); if (MessageBox.Show("Fenster positioniert?", "OpenTools V2.0", MessageBoxButtons.OK, MessageBoxIcon.Question) == DialogResult.OK) { ProcessListDemo.Windows win = new ProcessListDemo.Windows(); //Neuen Ordner erstellen und Pfad mitgeben Ordner o = new Ordner(path); //o.WindowTitel = wm.DireWindowName; //Window settings hinzufügen; foreach (ProcessListDemo.Window w in win.lstWindows) { if (w.winHandle == Handle) { //Fenstereigenschaften werden an Ordner übergeben o.WindowSettings = w; } } Ordner.Add(o); listOrdner.Items.Add(o.name); } }
/// <summary> /// Fügt eine Datei zur Toolgruppe hinzu. /// </summary> /// <param name="path"></param> private void dateiHinzufügen(string path) { processDateien = new Process(); processDateien.StartInfo = new ProcessStartInfo(path); processDateien.EnableRaisingEvents = true; try { processDateien.Start(); if (MessageBox.Show("Fenster positioniert?", "OpenTools V2.0", MessageBoxButtons.OK, MessageBoxIcon.Question) == DialogResult.OK) { ProcessListDemo.Windows win = new ProcessListDemo.Windows(); //Neue Datei erstellen und Pfad mitgeben Datei d = new Datei(path); //Window settings hinzufügen; foreach (ProcessListDemo.Window w in win.lstWindows) { try { if (w.winHandle == processDateien.MainWindowHandle) { //Fenstereigenschaften werden an Datei übergeben d.WindowSettings = w; } } catch { //TODO: Vielleicht gibts ja ne Lösung für die Fensterpositionen xD } } Dateien.Add(d); listDateien.Items.Add(d.name); } } catch { MessageBox.Show(System.IO.Path.GetFileNameWithoutExtension(path) + System.IO.Path.GetExtension(path) + " konnte nicht geöffnet werden! Überprüfe den Pfad oder das Programm mit dem die Datei geöffnet wird!", "Datei nicht kompatibel!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Öffnet einen Ordner und gibt den Window-Handle zurück /// </summary> /// <param name="path"></param> /// <returns></returns> public IntPtr OpenFolderGetHandle(string path) { path = path.Replace("/", "\\"); if (!path.EndsWith("\\")) { path += "\\"; } Process mp = new Process(); mp.StartInfo.FileName = path; mp.Start(); Thread.Sleep(150); ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = path; foreach (Process p in Process.GetProcesses()) { if (p == mp) { DireWindowName = p.MainWindowTitle; } } IntPtr handle = getFolderHandle(path); ProcessListDemo.Windows windows = new ProcessListDemo.Windows(); //foreach (ProcessListDemo.Window w in windows.lstWindows) //{ // if (w.winHandle == handle) // { // DireWindowName = w.winTitle; // } // } return(handle); }