Autor |
Beitrag |
maxk
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Sa 24.08.02 19:29
Hi,
ich schreibe gerade an einem Programm, dass Informationen über die Notebook-Batterie ausgibt. Nun stört mich die Windows-Batterieanzeige im Tray. Wie kann ich diese (das Handle ist bekannt) ausblenden. Folgendes funktioniert nicht:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| var tnid: TNOTIFYICONDATA; begin tnid.cbSize := sizeof(TNOTIFYICONDATA); tnid.Wnd := FindWindow(nil,'Energieanzeige'); tnid.uID := 1; Shell_NotifyIcon(NIM_DELETE, @tnid); end; |
Kann mir jemand helfen?
maxk
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
OregonGhost
Beiträge: 215
|
Verfasst: Mo 26.08.02 18:14
Hmm, dann hat das Symbol wohl eine andere ID... Probier' doch mal alle IDs durch ;c)
_________________ Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
|
|
maxk
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Di 27.08.02 20:16
Das habe ich auch schon versucht!
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
DeCodeGuru
Beiträge: 1333
Erhaltene Danke: 1
Arch Linux
Eclipse
|
Verfasst: Di 27.08.02 21:02
auch schon die 0?
_________________ Viele Grüße
Jakob
|
|
hitstec
Beiträge: 295
|
Verfasst: Mi 28.08.02 20:59
Wie wäre es wenn du das Symbol windowsseitig deaktivierst?
Dafür gibt es eine Option in der Systemsteuerung!
|
|
DeCodeGuru
Beiträge: 1333
Erhaltene Danke: 1
Arch Linux
Eclipse
|
Verfasst: Do 29.08.02 08:06
des wäre aber ein workaround und nicht im sinne eines Programmierers
Also mit ner 0 als ID müsste das doch eigentlich funktionieren, oder nicht? Ich meine, man gibt doch - wenn man ein idcon ins systray hängt - als ID eine 0 an. (Also ich wenigstens)
Bringt es was, wenn man einfach das Programm mit WM_Close oder WM_Quit beendet? Mit WM_Close müsste auch das icon wieder verschwinden.
_________________ Viele Grüße
Jakob
|
|
Arakis
Beiträge: 344
|
Verfasst: Do 29.08.02 08:15
Also ich nutz hier lieber vorzugsweise Applicatin.Handle. Die ist nicht so einfach heraus zu finden
Bis dann
_________________ Mit dem Computer löst man Probleme, die man ohne ihn nicht hätte.
Entwickler von SpaceTrek: The New Empire - Siehe Hompage!
|
|
DeCodeGuru
Beiträge: 1333
Erhaltene Danke: 1
Arch Linux
Eclipse
|
Verfasst: Do 29.08.02 08:18
oder so
_________________ Viele Grüße
Jakob
|
|
hitstec
Beiträge: 295
|
Verfasst: Do 29.08.02 21:36
Als ID kannst du die volle Breite eines U-Integers nehmen, nicht nur null!
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 30.08.02 08:01
DeCodeGuru hat folgendes geschrieben: | des wäre aber ein workaround und nicht im sinne eines Programmierers |
Wenn man die Änderung des entsprechenden Registryeintrags im Programm vornimmt, dann ist das kein Work-Around und durchaus im Sinne eines Programmierers.
Ich hab´s unter Win98 mal getestet, es ändert sich nur der Wert von "Services" im Schlüssel "hkcu/Software/Microsoft/Windows/CurrentVersion/Applets/SysTray". Mehr passiert nicht. Aber - bei der manuellen Änderung erschien das Symbol der Batterieanzeige zwar nach dem Neustart, aber die entsprechende Option im Dialog von Windows war nach wie vor ausgeschaltet.
So, das wäre der Weg, den man gehen könnte ...
Zitat: | Bringt es was, wenn man einfach das Programm mit WM_Close oder WM_Quit beendet? Mit WM_Close müsste auch das icon wieder verschwinden. |
Wenn das Programm von maxk die Energieanzeige komplett ersetzt, dann wäre das sicher der beste Weg. In Anbetracht der Tatsache, dass aber viele englische Versionen von Windows benutzen (Englisch-Lehrer z.B., die neben dem Smalltalk-Englisch auch noch IT-Englisch lehren), dann würde ich nicht nach dem Titel "Energieanzeige" suchen.
Wenn maxk das Programm nur für sich benötigt, dann mag das egal sein, aber einige Hobby-Entwickler streben eine Veröffentlichung ihrer Programme an, vergessen dabei aber, dass nicht jeder die selben Einstellungen usw. benutzt wie sie selbst.
Gruß,
Mathias.
|
|
DeCodeGuru
Beiträge: 1333
Erhaltene Danke: 1
Arch Linux
Eclipse
|
Verfasst: Fr 30.08.02 18:48
Zitat: | Wenn man die Änderung des entsprechenden Registryeintrags im Programm vornimmt, dann ist das kein Work-Around und durchaus im Sinne eines Programmierers. |
ok, da gebe ich dir recht.
_________________ Viele Grüße
Jakob
|
|
maxk
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Di 03.09.02 09:52
Okay,
des Rätsels Lösung ist die ID 1225. Mit der geht's. Ich hatte zuerst nur von 1-1024 gescannt . Bei einem Scan bis 9999 habe ich es dann gefunden!
Danke, für die vielen Antworten
maxk
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
DeCodeGuru
Beiträge: 1333
Erhaltene Danke: 1
Arch Linux
Eclipse
|
Verfasst: Di 03.09.02 13:59
sag mal. Es handelt sich doch bei deinem Problem um die Batterieanzeige von Windows. Vielleicht ändert sich die ID ja auch, wenn ein anderes Bild für einen leeren Batteriestand oder so eingefügt wird. Könnte doch sein oder
_________________ Viele Grüße
Jakob
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 03.09.02 18:23
Das wäre zwar denkbar, ist aber unwahrscheinlich. Schließlich hast du die Connection zur TNA ja bereits und brauchst nur mit NIM_MODIFY das Symbol ändern. Ich ändere ja auch nicht mit jedem Zugriff die Id. Aber ich kann natürlich nicht für die Programmierer bei Microsoft sprechen ...
Aber dein früherer Vorschlag, DeCodeGuru, war IMHO besser. Wenn die Energieanzeige nicht gebraucht wird -und ich meine jetzt das Programm, nicht bloß das Symbol!- dann mit WM_CLOSE schließen lassen.
|
|
DeCodeGuru
Beiträge: 1333
Erhaltene Danke: 1
Arch Linux
Eclipse
|
Verfasst: Di 03.09.02 18:26
Zitat: | Das wäre zwar denkbar, ist aber unwahrscheinlich. Schließlich hast du die Connection zur TNA ja bereits und brauchst nur mit NIM_MODIFY das Symbol ändern. Ich ändere ja auch nicht mit jedem Zugriff die Id. |
Stimmt auch wieder.
_________________ Viele Grüße
Jakob
|
|