Autor Beitrag
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 215



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Di 27.08.02 21:02 
auch schon die 0?

_________________
Viele Grüße
Jakob
hitstec
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 295



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Do 29.08.02 08:06 
des wäre aber ein workaround und nicht im sinne eines Programmierers :wink:

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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 344



BeitragVerfasst: Do 29.08.02 08:15 
Also ich nutz hier lieber vorzugsweise Applicatin.Handle. Die ist nicht so einfach heraus zu finden :mrgreen:

Bis dann
user defined image

_________________
Mit dem Computer löst man Probleme, die man ohne ihn nicht hätte.
Entwickler von SpaceTrek: The New Empire - Siehe Hompage!
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Do 29.08.02 08:18 
oder so :mrgreen: :wink:

_________________
Viele Grüße
Jakob
hitstec
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 295



BeitragVerfasst: 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



BeitragVerfasst: Fr 30.08.02 08:01 
DeCodeGuru hat folgendes geschrieben:
des wäre aber ein workaround und nicht im sinne eines Programmierers :wink:

Wenn man die Änderung des entsprechenden Registryeintrags im Programm vornimmt, dann ist das kein Work-Around und durchaus im Sinne eines Programmierers. :wink:

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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: 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. :wink:


ok, da gebe ich dir recht. :mrgreen:

_________________
Viele Grüße
Jakob
maxk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: 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 :lol: . 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: 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 :idea:

_________________
Viele Grüße
Jakob
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 ... :wink:

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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: 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