2008-08-27 8 views
3

Ich weiß, ich kann programmatisch das Taskleiste Element für ein bestimmtes Fenster beginnen zu blinken, wenn sich etwas ändert, aber gibt es eine Möglichkeit, ich kann es entweder programmatisch nach einer bestimmten Zeit oder zumindest blinkt es nicht zu blinken ein Tastaturkürzel kann ich meinen Benutzern geben, um irgendwie das Blinken zu stoppen?Stoppe die Taskleiste blinkend

Antwort

4

Die FlashWindowEx-Funktion, die das Blinken steuert, benötigt eine FLASHWINFO Struktur, die ein uCount-Feld hat, um zu steuern, wie oft sie blinkt. Ein möglicher Wert für das Feld dwFlags ist FLASHW_STOP, um das Blinken zu stoppen.

BEARBEITEN: Vergessen war eine mit C# markierte Frage ... also P/Invoke goodness found here.

3

Ich würde es bevorzugen, Programmierer haben dies nicht getan. Ich finde eine blinkende Taskleiste sehr störend und nervig, wenn ich in der Zone etwas anderes mache.

+0

Danke für die Erwähnung dieser. –

1

@Thomas - Erstaunlicher eigenen Windows Vista User Experience Guidelines Microsoft mit Ihnen einverstanden ...

Während ein Hintergrundfenster blinkt seine Taskleiste mit Knopf ist besser als an die Spitze automatisch kommen mit und stehlen Eingabefokus, Taskleiste zu blinken Tasten sind immer noch sehr aufdringlich. Es ist schwierig für die Benutzer, sich zu konzentrieren, wenn eine Taskleistenschaltfläche blinkt. Sie sollten also davon ausgehen, dass die Benutzer sofort aufhören, was sie tun, damit das Blinken aufhört. Daher blinkt die Taskleiste nur in Situationen, in denen sofortige Aufmerksamkeit erforderlich ist.

Wer weiß natürlich, wer diese Richtlinien tatsächlich befolgt ... oder wer sie überhaupt liest. :)

+0

Microsoft folgt nicht mehr ihren eigenen Richtlinien, daher ist es wahrscheinlich unmöglich, andere Softwareentwickler zu erwarten. Was das OP angeht, mag ich persönlich keine blinkenden Taskleistensymbole, blinkenden Fensterfokus, Apps, die ihr Fenster an die Spitze zwingen (oft, wenn ich in eine andere App tippe und dies geschieht, aktiviert meine Eingabe jedes Steuerelement, das den Fokus hat und schließt) der Dialog, so dass ich am Ende vermisse, was auch immer die Benachrichtigung war), oder Benachrichtigungen in der Taskleiste. Es sollte von Fall zu Fall für die Meldungsart festgelegt werden. Ich zeige ein Symbol in der App-Symbolleiste/Statusleiste mit einem Hover-Balloon-Tipp. – deegee

2

Anstatt die Taskleiste zu blinken, können Sie NotifyIcon verwenden. Dadurch können Sie etwas auf die Taskleiste legen (etwas, das viele für böse halten, weil Apps so weit verbreitet sind). Dann können Sie eine Ballonspitze mit jeder Änderung auffüllen, die tatsächlich die Änderung selbst beschreibt.

So verwenden Sie: (1) Ziehen Sie die NotifyIcon auf Ihr Formular oder erstellen Sie in Ihrer App NotifyIcon notify = new NotifyIcon(); (2) Stellen Sie die Symbol-Eigenschaft auf das gewünschte Bild (3) Kontrolle, ob es auf der Taskleiste sichtbar ist die Visible-Eigenschaft mit (4) ShowBalloonText Rufen Sie Popup-Text anzuzeigen (begrenzt auf 64 Zeichen)

Entweder So sollten Sie dem Programm eine Option hinzufügen, die es dem Endbenutzer ermöglicht, diese Funktion basierend auf seinen Gefühlen einzuschalten. Ich persönlich mag das Benachrichtigungssymbol, weil der Ballontext etwas sagen kann wie "Server ging runter"