C# :: Aufgabe #45 :: Lösung #3
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.
#3

von Robi (390 Punkte)
- 25.11.2015 um 15:14 Uhr

using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices; namespace Übungen_Zu_CSharp_45 { class Program { //Import der zwei benötigten Funktionen [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] static extern IntPtr GetForegroundWindow(); [DllImport("user32.dll", SetLastError = true)] static extern uint GetWindowThreadProcessId(IntPtr frgWnd, out uint frgWndProcessId); static void Main() { string ProcessTitel = ""; while (true) { //Felder uint ProcessId; string ProcessName; string tempProcessTitel; Process currProc = new Process(); currProc = Process.GetCurrentProcess(); IntPtr fw = GetForegroundWindow(); //Fenster im Vordergrund bestimmen GetWindowThreadProcessId(fw, out ProcessId); //Fensternamen und Prozessnamen auslesen tempProcessTitel = Process.GetProcessById(Convert.ToInt32(ProcessId)).MainWindowTitle; ProcessName = Process.GetProcessById(Convert.ToInt32(ProcessId)).ProcessName; //Wenn die Konsole oder der Explorer im Vordergrund, das Fenster nicht gewechselt wurde oder der Titel leer wird nichts ausgegeben if (ProcessId == currProc.Id || ProcessName == "explorer" || tempProcessTitel == ProcessTitel || tempProcessTitel == "") { continue; } else { ProcessTitel = tempProcessTitel; } //Konsolenausgabe Console.WriteLine("Fenstername: " + ProcessTitel); Console.WriteLine("Prozessname: " + ProcessName + "\n"); //Resourcen sparen System.Threading.Thread.Sleep(1000); } } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1