3 Stimmen

Wie kann man eine VB.net 2008-App in Windows 7 den Fokus stehlen lassen?

Ich versuche, eine Anwendung in VB.net zu erstellen, die nach dem Auftreten einer bestimmten Bedingung (in diesem Fall das Erstellen einer Datei) in den Vordergrund treten kann. Ich habe den folgenden Code ausprobiert, aber es führt nur dazu, dass die Taskleistenschaltfläche unter Windows 7 blinkt:

Me.Activate()

Ich verstehe den Grund dafür und ich verstehe vollkommen, warum die Leute nicht wollen, dass irgendeine zufällige Anwendung den Fokus stiehlt (ich hasse es auch). Diese Anwendung hat eine extrem begrenzte Verwendung (es werden nur 3 Computer sie tatsächlich verwenden), und die Benutzer in diesem Fall möchten, dass die Anwendung im Vordergrund angezeigt wird (es wird auch eine Option zum Deaktivieren geben).

Gibt es eine Idee, ob dies auf Windows 7 immer noch möglich ist?

3voto

MarkJ Punkte 29670

Der einfachste Weg besteht darin, den ForegroundLockTimeout Registrierungsschlüssel auf den drei Computern zu ändern. Dies deaktiviert die Windows-Regeln, die verhindern, dass Hintergrundanwendungen den Fokus stehlen. Offensichtlich ermöglicht es allen Anwendungen im System, den Fokus zu stehlen.

Sie können die Regeln auch durch Code deaktivieren, indem Sie SystemParametersInfo mit SPI_SETFOREGROUNDLOCKTIMEOUT verwenden. Siehe zum Beispiel hier

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X