C# :: Aufgabe #45 :: Lösung #5
5 Lösungen

#45
Fensternamen ausgeben
Fortgeschrittener - C#
von Process1
- 15.01.2013 um 06:51 Uhr
Erstelle ein Konsolenprogramm. In der Konsole sollen Fenstertitel & und zugehöriger
Prozessname ausgegeben werden, wenn das Vordergrundfenster wechselt. (Programm soll durchgehend laufen)
Die Konsole selber soll nicht ausgegeben werden.
Der Windows-Explorer soll nicht ausgegeben werden.
Prozessname ausgegeben werden, wenn das Vordergrundfenster wechselt. (Programm soll durchgehend laufen)
Die Konsole selber soll nicht ausgegeben werden.
Der Windows-Explorer soll nicht ausgegeben werden.
Konsolenausgabe:
Fenstername: Windows Task-Manager
Prozessname: taskmgr
Fenstername: Neue Aufgabe erstellen - TRAIN your programmer - Google Chrome
Prozessname: chrome
usw.
#5

von stbehl (1640 Punkte)
- 06.02.2018 um 10:26 Uhr

using System; using System.Diagnostics; using System.ComponentModel; using System.Windows; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; namespace TrainYourProgrammer45 { class Program { static void Main(string[] args) { int aktivesProgramm = 0; while (true) { foreach (Process prozess in Process.GetProcesses()) { if (GetActiveWindowTitle() == prozess.MainWindowTitle && prozess.Id != aktivesProgramm && prozess.ProcessName != "TrainYourProgrammer45") { Console.WriteLine("Fenstername: " + prozess.MainWindowTitle); Console.WriteLine("Prozessname: " + prozess.ProcessName); Console.WriteLine(); // ID? aktivesProgramm = prozess.Id; } } } } [DllImport("user32.dll")] static extern IntPtr GetForegroundWindow(); [DllImport("user32.dll")]static extern int GetWindowText(IntPtr hWnd, StringBuilder text, int zaehler); private static string GetActiveWindowTitle() { const int zaehler = 256; StringBuilder Buff = new StringBuilder(zaehler); IntPtr aktivesFenster = GetForegroundWindow(); if (GetWindowText(aktivesFenster, Buff, zaehler) > 0) { return Buff.ToString(); } else { return null; } } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1