Feedback

C# - Form in den Windowsvordergrund bringen

Veröffentlicht von am 04.07.2007
(1 Bewertungen)
Es wird eine Windows API genutzt um ein Fenster in den Windowsvordergrund zu bringen, auch wenn eine andere Applikation gerade den Fokus hat.
GFU-Schulungen  [Anzeige]

C# Aufbaukurs

Sie haben grundlegende .NET- und C#-Kenntnisse und und wollen diese nun erweitern. Der Aufbaukurs C# führt Sie ein die Arbeit mit Interfaces und Delegates, Generics und Parallel Computing.

VB.NET 2017/2015/2013 Komplett

Ziel des Seminars ist der flexible Umgang mit VB.NET, wie z.B. die damit verbundene eigenständige Entwicklung von Programmen oder das Verwenden von Datenbanken.

//Einbinden von:
using System.Runtime.InteropServices;

//Als externe Methode deklarieren...
[DllImport("User32.dll")]
static extern long SetForegroundWindow(int hwnd);

//Und einfach aus einer Form heraus aufrufen...
private void abInDenVordergrund()
{
    int hwnd = this.Handle.ToInt32();
    SetForegroundWindow(hwnd);
}
Abgelegt unter Vordergrund, Form, API.

3 Kommentare zum Snippet

FZelle schrieb am 05.07.2007:
Die Signatur von SetForegroundWindow ist
static extern bool SetForegroundWindow(IntPtr hwnd);
Dem entsprechend ist dann der aufruf auch einfach:

SetForegroundWindow(this.Handle);

Zur Signatur siehe:
http://www.pinvoke.net/default.aspx/coredll/SetForegroundWindow.html
Rüdiger Vossel schrieb am 06.07.2007:
Auch richtig, aber :-) laut dem Link, den Du angegeben hast ist die Signatur für die SetForegroundWindow aus der coredll:

coredll is for smart devices, not desktop Windows. Therefore, this information only applies to code using the .NET Compact Framework.
To see if information for SetForegroundWindow in other DLLs exists, click on Find References to the right.

Aber die gibt es tatsächlich auch in der user32.dll dann sieht es folgendermaßen aus:

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetForegroundWindow(IntPtr hWnd);

Also DANKE!
Koopakiller schrieb am 09.06.2013:
Für alle Interessierten: Die meisten Windows-Funktionen, die über DllImport gehohlt weerden, akzeptieren ein IntPtr oder ein Int32 als Parameter. Schließlich kann man beide relativ problemlos ineinander Umwandeln. Der Weg über IntPtr ist aber meistens schöner.
 

Logge dich ein, um hier zu kommentieren!