/// <summary> /// Devuelve la lista de ventanas activas en el sistema con un titulo visible /// </summary> /// <returns>Lista de ventanas activas</returns> public static Window[] getActiveWindows() { Process[] processes = Process.GetProcesses(); Window[] activeWindows = new Window[processes.Length]; for (int i = 0; i < processes.Length; i++) activeWindows[i] = new Window(processes[i]); return activeWindows; }
private void btnActivate_Click(object sender, EventArgs e) { if (cmbApplication.SelectedIndex < 0) return; if (macrosRunning) { foreach (Macro macro in macroList) { macro.Stop(); } btnActivate.Text = "Activar"; cmbApplication.Enabled = true; gridMacroList.Enabled = true; macrosRunning = false; return; } else { btnActivate.Text = "Detener"; cmbApplication.Enabled = false; gridMacroList.Enabled = false; macrosRunning = true; } window = (Window)cmbApplication.SelectedItem; //window.setForegroundWindow(); macroList = buildMacroList(); foreach (Macro macro in macroList) { macro.Start(window); Thread.Sleep(100); } Thread checkWindowInForegroundThread = new Thread(new ThreadStart(checkWindowInForeground)); checkWindowInForegroundThread.Start(); }