Feedback

C# - Fenster wirklich in den Vordergrund des Desktops bringen

Veröffentlicht von am 04.11.2008
(1 Bewertungen)
Diese Funktion bringt ein Fenster (Übergabeparameter = System.Windows.Forms.Form) in den Vordergrund des Desktops, auch wenn sich andere Programme zur Zeit im Vordergrund befinden.

using System.Runtime.InteropServices;


Achso .. Lauffähig ab Framework 2
GFU-Schulungen  [Anzeige]

VB.NET Aufbau

Sie verfügen nach der Schulung über fundierte Kenntnisse in der Arbeit mit objektorientierten Modellen in VB.NET und können wiederverwendbare Komponenten eigenständig erzeugen.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

[DllImport("User32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);

[DllImport("User32.dll")]
public static extern int AttachThreadInput(IntPtr idAttach, IntPtr idAttachTo, bool fAttach);

[DllImport("User32.dll")]
public static extern IntPtr GetForegroundWindow();

[DllImport("User32.dll")]
public static extern IntPtr GetWindowThreadProcessId(IntPtr hwnd, IntPtr lpdwProcessId);

public static void SetForegroundWindowEx(Form window)
{
	IntPtr hndl = window.Handle;
	IntPtr threadID1 = GetWindowThreadProcessId(GetForegroundWindow(), IntPtr.Zero);
	IntPtr threadID2 = GetWindowThreadProcessId(hndl, IntPtr.Zero);
	window.TopMost = true;

	if (threadID1 == threadID2)
	{
		SetForegroundWindow(hndl);
	}
	else
	{
		AttachThreadInput(threadID2, threadID1, true);
		SetForegroundWindow(hndl);;
		AttachThreadInput(threadID2, threadID1, false);
	}
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!