Neues Bitmap für Start Button
-
Ist auch egal, denn hier geht es nicht um Subclassing. Wie gesagt, ich gebe dem Button ein neues Bitmap. Das klappt. Nur leider aktualisiert der Explorer in (un-)regelmäßigen Abständen die Taskleiste (wobei es sich um maximal ne halbe Sekunde handelt). Und damit auch den Start Button. D.h., das Bild verschwindet nach einer kleinen Weile wieder. Dann ist kein Bitmap mehr auf dem Button.
Ich frage mich nur, was dafür zuständig ist, dass normalerweise bei Aktualisierung der Taskleiste das Standardbild auf dem Button bleibt.
-
Hab da was gefunden, vielleicht hilft's ja:
...
tatsächlich ist der Startbutton ein Bitmap-Button. Aber mittels der "GetDC"-Funktion kannst du den Devicekontext ermitteln und anschliessend über die "SelectObject"-Funktion ein neues Bitmap (Bitmaphandle) zuweisen. Vergiss aber nicht danach die "ReleaseDC"-Funktion aufzurufen
...cya
-
WOW. Danke, das war's! Man muss erstens das Bitmap per BM_SETIMAGE ändern und damit es bestehen bleibt SelectObject() benutzen.
Danke @MagiC. Hast mir sehr geholfen.
-
Hmm. Soweit so gut. Jetzt möchte ich aber noch, dass das Bitmap auch nach dem Ende meines Proggis noch auf dem Button zu sehen ist. Das tut es aber nicht, weil das HBITMAP sich ja in meinem Speicher befindet. Ich muss also irgendwie das Bitmap in den Speicher der Explorer.exe hauen und darauf zugreifen können. Nur wie?
-
Wenn dein Proggi nicht allzu speicherfressend ist, könntest du es ja einfach im Hintergrund weiterlaufen lassen :).
cya
-
Ja, aber das will ich nicht.
-
Dann kannst du auch gleich mit einem Resourceneditor das Bitmap in der Explorer.exe ändern. Dann brauchst du kein Programm mehr und das Bitmap ist auch nach einem Neustart noch da.
-
@D@niel $chumann
wie macht man das? *auch intressiert bin*
-
Es gibt da so Tools, ich glaub eins heisst "ResouceHack" oder so. Damit kannst du die Resourcen, die einer Anwendung beigefügt sind, verändern.
cya
-
Original erstellt von D@niel $chumann:
Dann kannst du auch gleich mit einem Resourceneditor das Bitmap in der Explorer.exe ändern. Dann brauchst du kein Programm mehr und das Bitmap ist auch nach einem Neustart noch da.Nein, bei mir leider nicht! Ich hab das Bitmap geändert, aber es war keine Änderung zu sehen. Die Änderung des Textes hat geklappt und alle anderen (Startmenu usw.) - nur eben die des Bitmaps nicht. Frag mich nicht warum. Ich hab genau das gleiche Format genommen (16x16 und 16 Farben).
Deshalb kam ich ja erst auf die Idee, das mit einem Proggi zu machen.
-
Auf der Seite http://csislabs.palomar.edu/Student/Utilities/ResHack/ gibt es einen guten Resourcen Editor.
-
Also so ein Aufwand ist das doch wirklich nicht mittels HOOKING
die WM_PAINT Proc vom Startbutton umzubiegen..Wenn es jemanden interessiert packe ich das mal auf unsere HP.
Anträge dazu bitte bei uns ins Forum posten.
-
Ja, bitte machen! Das ist dann mal wieder ne Gelegenheit für mich, das Hooking auch mal zu verstehen :D.
cya
-
Dann nimmt man wohl nen WNDPROCHOOK, nicht wahr?
-
@TKool: Interessiert mich auch. Aber eigentlich ist es ja egal, ob ich nun ne Hook-DLL im Hintergrund laufen lasse oder mein Proggi selber. Ich hab jetzt die zweite Version genommen. Funzt auch wunderbar.
-
Zweite Version? Wie sieht die denn aus? Du könntest ja mal etwas Code posten, vielleicht kommt's ja in die FAQ :D.
cya
-
Mit zweite Version meinte ich, dass ich mein Prog im Hintergrund laufen lasse. Und wieso sollte das Verändern des Start-Buttons in die FAQ? Das ist doch ganz billige API.
[ Dieser Beitrag wurde am 02.01.2003 um 20:42 Uhr von WebFritzi editiert. ]