2013-03-01 31 views
7

Immer wenn meine Windows Forms-Anwendung zum ersten Mal ausgeführt wird, bleibt das Tray-Symbol für weniger als eine Minute sichtbar, und dann wird es automatisch ausgeblendet, was kann ich tun, damit es bleibt und nicht automatisch versteckt?automatisches Verbergen der Taskleiste stoppen Benachrichtigungssymbol

Ich habe versucht zu suchen und kann keine nützlichen Informationen finden.

Es scheint, dass dies das Standardverhalten für Windows 7 und höher ist, frage ich mich, ob es eine Möglichkeit gibt, dieses Verhalten in meiner Anwendung zu überschreiben?

+1

Nein, es gibt keine Möglichkeit, das programmatisch zu tun. Sie können auf "Anpassen" in der Taskleiste klicken und es so ändern, dass es immer manuell angezeigt wird. – Blorgbeard

+0

@Blorgbeard eigentlich muss es sein. Die Details der Anwendungssymbole zum Ausblenden/Anzeigen/Anzeigen von Benachrichtigungen werden irgendwo ** gespeichert, höchstwahrscheinlich in der Registrierung. Ich vermute, die Lösung wird entweder direkten Zugriff auf die Registrierung oder eine Win32 API-Aufruf – DiskJunky

+1

@DiskJunky, das ist wahr, aber ich hoffe, OP nicht herausfinden, wie: P – Blorgbeard

Antwort

6

Es gibt keine unterstützte programmatische Methode zum Überschreiben des standardmäßigen Benachrichtigungssymbols für das System. MSDN:

Wenn ein Symbol in den Infobereich auf Windows 7 hinzugefügt wird, wird es standardmäßig in den Überlaufabschnitt des Infobereich hinzugefügt. Dieser Bereich enthält Symbole für den Infobereich, die zwar aktiv sind, aber nicht im Infobereich sichtbar sind. Nur der Benutzer kann ein Symbol vom Überlauf zum Benachrichtigungsbereich heraufstufen, obwohl das System unter bestimmten Umständen vorübergehend ein Symbol als kurze Vorschau (unter einer Minute) in den Infobereich verschieben kann.

Schwerpunkt meiner.

+0

Trotz der Dokumentation stimme ich damit nicht überein. Die Einstellungen müssen irgendwo gespeichert werden, unabhängig davon, wie einfach diese Einstellungen aktualisiert/gelesen werden können. Ich finde es äußerst unwahrscheinlich, dass MS große Anstrengungen unternommen hat, um solche relativ trivialen Einstellungen zu verschlüsseln oder anderweitig zu sperren. Es ist möglich, dass es keinen API-Anruf gibt, aber es bedeutet nicht, dass es "unmöglich" ist, nur schwierig – DiskJunky

+3

Oh, keine Frage, @DiskJunky. Ich sage nur, dass es nicht * unterstützt * ist. Wenn Ihre Software die Einstellung findet und ausnutzt, bricht sie ab, wenn Microsoft die Dinge verschiebt. Seit Win8 haben sie eine größere Bereitschaft gezeigt, dies zu tun. –

+0

@Michael, falsch. Du kannst es immer noch tun, ich habe es geschafft. Der einzige Weg, es würde brechen, wenn Microsoft ihre tatsächlichen reg-Tasten und Struktur verschoben, wird dies nicht passieren. Und BTW Windows 8 die Lösung, die ich angeboten, funktioniert gut dort, wie es in 7 und Vista :) – Codexer

2

Wie Sie zweifellos die Diskussion in den Kommentaren gelesen haben, gibt es in der Tat keine unterstützt Weg dies zu tun. Das heißt, wenn Sie entschlossen sind und Zeit haben, ein wenig zu graben, würde ich Ihnen empfehlen, ein paar Tools zu verwenden, um die Dokumentation zu umgehen und zu sehen, was tatsächlich unter der Oberfläche mit den Benachrichtigungseinstellungen geschieht. Möglicherweise gibt es entsprechende Dokumentation, aber ich habe sie nicht gefunden.

Der Brute-Force-Ansatz wäre, SysInternals RegMon-Tool zu verwenden, um alle Registrierungszugriffe anzuzeigen. Wenn Sie es an den Prozess "Explorer.exe" anbinden, sehen Sie alle relevanten Informationen zu den Funktionen des Desktops und der Startleiste, einschließlich aller Dateizugriffe. Machen Sie keinen Fehler - dies ist ein Brute-Force-Ansatz und erfordert viel Aufwand und Graben. Sobald Sie mit dem explorer.exe-Prozess verbunden sind, können Sie Änderungen an den Benachrichtigungseinstellungen vornehmen. Durch Anzeigen und Untersuchen der vom Prozess vorgenommenen Änderungen erhalten Sie eine Vorstellung davon, wo die relevanten Einstellungen gespeichert sind und wie. Der Nachteil ist, dass es viele Daten geben wird, die durchforstet und untersucht werden, um herauszufinden, was vor sich geht, aber es kann getan werden. Dies ist nicht eine ideale Lösung, aber wenn keine andere bevorsteht, sind Sie mit der groben und bereiten Ansatz verlassen, fürchte ich. Es kommt darauf an, wie viel Aufwand Sie dafür aufbringen wollen.

+0

@MichaelPetrotta stimmte zu. Vollständig.Aber es ist nicht so schlimm - ich habe es getan, wenn es nötig ist. Hauptsächlich zurück in den Tagen vor SO aber immer noch :-) Es gibt sehr wenig, was eigentlich ** nicht gemacht werden kann. SO ist ein wenig zu Dokumentation zu Zeiten auf was "möglich" gebunden – DiskJunky

+1

Ich löschte meinen Kommentar oben als unnötig, aber da DiskJunky darauf geantwortet hat, werde ich es zurück hinzufügen: vernünftiger Weg, aber RegMon gegen explorer.exe ohne gute Filter - wie aus einer Firehose trinken. " –