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]

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.

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

//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!