Entwickler-Ecke
Open Source Projekte - HoverScroll
Silas - Di 25.03.08 18:06
Titel: HoverScroll
HoverScroll
HoverScroll ist ein Tool, dass das Scrollverhalten unter Windows verbessert (bzw. verbessern soll :wink: ). Im Normalfall scrollt immer das aktive Fenster und nicht das, über dem sich die Maus befindet, was für die Arbeit mit vielen Fenstern ein wenig Suboptimal ist.
Offen zugegeben ist die Idee für dieses Programm von der PC-Welt-Redaktion, die ihrer Zeitschrift ein solches Programm beigelegt haben. Dieses erstellt aber allen Ernstes für
jede Scroll-Message einen eigenen Thread und quittiert bei mehr als 70 Messages pro Sekunde seinen Dienst. (Ich besitze eine Maus mit freilaufendem Scrollrad, weswegen das sehr häufig eintritt.)
Mein Programm läuft im Hintergrund und installiert einen
WH_GETMESSAGE-Hook auf die
WM_MOUSEWHEEL und ändert ggf. ihr Ziel, wodurch immer das Fenster gescrollt wird, auf das der Mauszeiger zeigt :).
Leider gibt es schon ein paar known Bugs (Bitte verzeiht sie mir, es ist mein erster Hook):
- Die Konsole scrollt immer, egal wo die Maus hinzeigt
- Bei einigen Anwendungen kommt es vor, wenn sie sich im Vordergrund befinden, dass das zu scrollende Fenster doppelt so schnell scrollt (AFAIK bei VCL-Fenstern)
Ich habe es aber auf Herz und Nieren getestet, und kann sagen, dass es sich für den Dauerbetrieb eignet :).
Das Programm selber kommt als Installer (diesmal einer der funktioniert :oops: ), der HoverScroll auch gleich in den Autostart einträgt. Für die, die das nicht möchten, liegt das Programm inkl. der Hook-Dll den Sourcen bei.
Aktuelle Version: 2.3.0.7
[url=
http://www.silas-online.de/download.php?file=HoverScrollSetup.exe]Download (Setup-EXE, 529 KB)[/url]
[url=
http://www.silas-online.de/download.php?file=HoverScrollSource.7z]Sourcen (7-Zip-Archiv, 229 KB)[/url]
[url=
http://www.silas-online.de/download.php?file=HoverScrollSource.zip]Sourcen (Zip-Archiv, 338 KB)[/url]
[url=
http://silas-online.de/downloads/20-windows/33-hscroll]Artikel auf meiner Website[/url]
BenBE - Mi 26.03.08 11:20
Startet bei mir komplett ohne TrayIcon oder anderes Fenster ...
Funzt scheinbar bei meinem Notebook-Touchpad nicht (oder bedingt durch obig genannten Bug).
Silas - Mi 26.03.08 11:31
BenBE hat folgendes geschrieben: |
Startet bei mir komplett ohne TrayIcon oder anderes Fenster ... |
Ein TrayIcon ist noch nicht implementiert (Steht aber auf der Todo-Liste), das Hauptfenster (ohne das ich ja wegen der Message-Queue nicht auskomme) wird versteckt gestartet.
BenBE hat folgendes geschrieben: |
Funzt scheinbar bei meinem Notebook-Touchpad nicht (oder bedingt durch obig genannten Bug). |
Schau mal im Taskmanager nach, ob es als Prozess läuft. Wusste gar nicht, dass es Notebook-Touchpads mit Schrollmöglichkeit gibt?
BenBE - Mi 26.03.08 11:38
Silas hat folgendes geschrieben: |
BenBE hat folgendes geschrieben: | Startet bei mir komplett ohne TrayIcon oder anderes Fenster ... | Ein TrayIcon ist noch nicht implementiert (Steht aber auf der Todo-Liste), das Hauptfenster (ohne das ich ja wegen der Message-Queue nicht auskomme) wird versteckt gestartet. |
Zumindest für die Konfig wäre das nicht schlecht. Mit nem TrayIcon sollte das dann aber gehen ...
Silas hat folgendes geschrieben: |
BenBE hat folgendes geschrieben: | Funzt scheinbar bei meinem Notebook-Touchpad nicht (oder bedingt durch obig genannten Bug). | Schau mal im Taskmanager nach, ob es als Prozess läuft. Wusste gar nicht, dass es Notebook-Touchpads mit Schrollmöglichkeit gibt? |
Schon lange. Ist bei den Touchpads meist am rechten Rand. Meins hat sogar horizontales Scrollen mit drin (was aber eher nervig ist ...)
Silas - Mi 26.03.08 11:45
BenBE hat folgendes geschrieben: |
Silas hat folgendes geschrieben: | BenBE hat folgendes geschrieben: | Startet bei mir komplett ohne TrayIcon oder anderes Fenster ... | Ein TrayIcon ist noch nicht implementiert (Steht aber auf der Todo-Liste), das Hauptfenster (ohne das ich ja wegen der Message-Queue nicht auskomme) wird versteckt gestartet. |
Zumindest für die Konfig wäre das nicht schlecht. Mit nem TrayIcon sollte das dann aber gehen ... |
Gut, bis heut Abend hab ich das. :wink:
Welches Betriebssystem läuft bei dir? Bei mir unter XP und bei einem Freund unter Vista läufts einwandfrei.
Wie hast du's denn getestet? Öffne mal über deinem FF/IE ein Explorer-Fenster. Kannst du dann im FF-Fenster noch scrollen, wärend es inaktiv ist?
BenBE - Mi 26.03.08 15:30
Mein Notebook hat WinXP SP2 drauf, auch mit den letzten Patches.
Getestet hab ich's mit nem mIRC im Hintergrund und nem Explorer im Vordergrund. Wollte nicht.
Ach ja, n andrer Bug, der mir aufgefallen ist: Dein Programm lässt sich zwei mal starten. Solltest nen Single-Instnz-Schutz rein machen, damit Du nicht unnötig viele Hooks hast, die Messages verbiegen ;-)
Silas - Mi 26.03.08 15:57
BenBE hat folgendes geschrieben: |
Mein Notebook hat WinXP SP2 drauf, auch mit den letzten Patches. Getestet hab ich's mit nem mIRC im Hintergrund und nem Explorer im Vordergrund. Wollte nicht. |
Komisch, bei mir funktionierts einwandfrei. Hast du irgend einen speziellen Maustreiber für dein Pad der z.B. Funktionen hinzufügt (Gesten o.ä.)?
BenBE hat folgendes geschrieben: |
Ach ja, n andrer Bug, der mir aufgefallen ist: Dein Programm lässt sich zwei mal starten. Solltest nen Single-Instnz-Schutz rein machen, damit Du nicht unnötig viele Hooks hast, die Messages verbiegen ;-) |
Stimmt, habe ich übersehn. Gibts ebenfalls in der nächsten Version :).
Würde mich sehr freuen, wenn noch jemand anderes mein Programm testen und mir etwas Feedback geben würde, ob bzw. bei welchen Mäusen oder Pads es funktioniert und bei welchen nicht.
huuuuuh - Mi 26.03.08 22:12
also bei mir funktionierts
hab XP SP2 und desktop-pc und normale usb-maus
wär ganz schön wenn man einstellen könnte dass das programm das fenster, über dem sich der mauszeiger befindet, nach vorne holen würde
huuuuuh - Mi 26.03.08 22:20
Titel: Re: HoverScroll
Silas hat folgendes geschrieben: |
- Die Konsole scrollt immer, egal wo die Maus hinzeigt
|
nur die konsole scrollt
BenBE - Mi 26.03.08 22:23
Ich hab's jetzt noch mal probiert, kann den Bug mit der Konsole bestätigen
Zum Touchpad: Scheint n eigener Treiber zu sein, der n bissl was umbiegt. Müsste das aber auch erst im Detail untersuchen. N Debug-Modus wäre dafür sicherlich von Vorteil, um zu sehen, was das Programm detektiert, Hookstatus, empfangene Messages, ... Und besagtes Tray-Icon.
Silas - Mi 26.03.08 22:30
huuuuuh hat folgendes geschrieben: |
wär ganz schön wenn man einstellen könnte dass das programm das fenster, über dem sich der mauszeiger befindet, nach vorne holen würde |
Beim scrollen? Ob das so günstig ist? Weil das aktuelle Fenseter landet eben dann im Hintergrund :wink: . Vielleicht wenn ich das ganze mit einem Mod-Key kombiniere...
huuuuuh hat folgendes geschrieben: |
Silas hat folgendes geschrieben: | - Die Konsole scrollt immer, egal wo die Maus hinzeigt
|
nur die konsole scrollt |
Ja, so hatte ich das gemeint, bloß ein bisschen ungünstig ausgedrückt :wink:
BenBE hat folgendes geschrieben: |
Ich hab's jetzt noch mal probiert, kann den Bug mit der Konsole bestätigen |
Die Konsole ein "besonderes" Fenster, oder? Sie kann ja z.B. keine Styles annehmen.
BenBE hat folgendes geschrieben: |
N Debug-Modus wäre dafür sicherlich von Vorteil, um zu sehen, was das Programm detektiert, Hookstatus, empfangene Messages, ... Und besagtes Tray-Icon. |
Vielleicht bau ich einen kleinen Logger für die HookProc ein.
Kann sein, dass ich die neue Version heut nicht mehr fertig bring, werd mich aber beeilen :)
Auf jeden Fall: Vielen Dank fürs Testen!
Silas - Mi 26.03.08 23:19
Neue Version 1.1.0.2
[+] Das Programm besitzt jetzt ein TrayIcon
[*] Die EXE lässt sich nur noch einmal starten
Hooken kann das Programm sowieso nur einmal, da meine DLL nur ein Handle speichert und ein "drüberhooken" nicht erlaubt. Schöner ist es so trotzdem :) .
Ein Einstellungs- und Beendmenü sowie ein Logger kommen morgen, es gibt noch Probleme beim unhooken mit dem Explorer (s.o.). Bis da hin ist das Icon einfach einmal eine Anzeige, dass das Programm läuft.
Edit: Ihr könnt die neue Version einfach drüberinstallieren, wenn ihr vorher HoverScroll unter "Prozesse" im Task-Manager beendet.
GTA-Place - Mi 26.03.08 23:47
Funktioniert. Coole Idee und gute Umsetzung :)
huuuuuh - Do 27.03.08 11:23
mal ne frage: wie wichtig ist die dll? ich hab das programm vorher beendet, auf die alte dll war trotzdem der zugriff verweigert, code -5
edit: fänds gut wenn man das programm über den trayicon beenden könnte
bakachan - Do 27.03.08 11:34
hab das gleiche Problem wie huuuuuh zugriff auf die dll verweigert kommt halt davon das man das programm nicht regulär beenden kann
aber Silas hat ja schon angekündigt das das noch kommt
Silas - Do 27.03.08 15:15
huuuuuh hat folgendes geschrieben: |
mal ne frage: wie wichtig ist die dll? ich hab das programm vorher beendet, auf die alte dll war trotzdem der zugriff verweigert, code -5
edit: fänds gut wenn man das programm über den trayicon beenden könnte |
Die DLL ist das eigentliche Programm, weil Hooks generell in DLLs ausgelagert werden müssen, dass jedes Programm auf den Code zugriff hat.
Wenn du das Programm gekillt hast, kannst du die DLL umbenennen und anschließend löschen, weil sie im Speicher verbleibt (Ich weiß dass das ganz böse ist aber bei mir ist anschließend nichts abgestürzt.)
bakachan hat folgendes geschrieben: |
aber Silas hat ja schon angekündigt das das noch kommt |
Ja, das hat er :D . Sitz schon davor.
An dieser Stelle eine Frage an alle Hook-Pros: Wie kann ich einen
WH_GETMESSAGE-Hook unhooken, ohne dass mir der Explorer abstürzt? Ein einfaches
UnhookWindowsHookEx genügt anscheinend nicht.
bakachan - Do 27.03.08 15:25
bei mir hats immer ein einfaches
C#-Quelltext
1: 2:
| [DllImport("user32.dll")] private static extern bool UnhookWindowsHookEx(IntPtr hhk); |
getan.
Silas - Do 27.03.08 22:54
GTA-Place hat folgendes geschrieben: |
Funktioniert. Coole Idee und gute Umsetzung :) |
Danke!
bakachan hat folgendes geschrieben: |
bei mir hats immer ein einfaches
C#-Quelltext 1: 2:
| [DllImport("user32.dll")] private static extern bool UnhookWindowsHookEx(IntPtr hhk); |
getan. |
Funktioniert jetzt, keine Ahnung durch welche Änderung. Wahrscheinlich mal wieder die berühmte Compilermagic :wink: .
Und weil ichs euch ja für heut versprochen hab:
Neue Version 1.9.2.4 (alpha zu 2.0)
[+] Popupmenü dem Trayicon hinzugefügt
[+] Möglichkeit das Programm zu beenden und die DLL damit freizugeben
[+] Info-Form hinzugefügt
[+] Einstellungs-Form hinzugefügt
[+] Logger für die Hook-Proc hinzugefügt*
[+] Log-Display-Form hinzugefügt**
* Funktioniert im Moment nur teilweise, er scheint nur zu loggen wenn HoverScroll im Vordergrund ist (Das ist mir ein Rätsel, vielleicht fällt mir (oder euch) aber noch was ein.)
** Sie erscheint im Popupmenü wenn ihr unter Einstellungen den Logger aktiviert habt.
BTW: Kann jemand von euch den Doppel-Scroll-Bug (siehe 1.Posting) reproduzieren?
Yogu - Fr 28.03.08 00:05
Tolles Programm! :zustimm:
Ich verwende Windows 2000, da klappt auch alles, bis auf den bekannten Bug mit der Konsole. Ich fände es aber schön, wenn du noch 24-Bit-Symbole einbauen könntest; Windows 2000 unterstützt keine Alpha-Kanäle und es gibt unschöne schwarze Ränder. Ganz toll wär auch noch ein 16Bit-Symbol für den Tray, da gehen nämlich nicht mal 24 Bit. Ist aber nicht so wichtig.
Silas - So 30.03.08 20:23
Yogu hat folgendes geschrieben: |
Tolles Programm! :zustimm: |
Danke! :)
Edit: Yogu hat folgendes geschrieben: |
Ich verwende Windows 2000, da klappt auch alles, bis auf den bekannten Bug mit der Konsole. |
Wie sieht es mit dem Doppel-Scroll-Bug aus? Kannst du den reproduzieren?
Yogu hat folgendes geschrieben: |
Ich fände es aber schön, wenn du noch 24-Bit-Symbole einbauen könntest; Windows 2000 unterstützt keine Alpha-Kanäle und es gibt unschöne schwarze Ränder. |
In der neuen Version gibts alles von 4 bis 32 Bit und auch 24x24-Symbole :) .
Neue Version 1.9.5.8 (2.0 Alpha 2)
[*] Der Logger schreibt nun Log
dateien
[-] Aus diesem grund wurde auch das Logfenster wieder entfernt
[+] Es sind nun auch 24x24- sowie 8-Bit und 4-Bit-Symbole vorhanden
[*] Ein Logger-E/A-Bug wurde gefixt
[*] Für das Trayicon wird nun nicht mehr Borlands TTrayIcon verwendet, da dieses Probleme
beim Systemstart macht
Die Sache mit dem Logger konnte ich leider immer noch nicht fixen, gibt es da eine einfachere/elegantere Möglichkeit als MMF?
BenBE - So 30.03.08 20:31
Einige Programme (gesehen bei Trillian) reagieren auf das Scrollen gar nicht, solange HoverScroll gestartet ist (getestet mit Win2K, Trillian 3.1). Sobald ich HoverScroll wieder beende, funktioniert das Scrollen in Trillian wieder.
GTA-Place - So 30.03.08 20:38
Ist mir auch aufgefallen, aber ich dachte, dass das normal sei bei Trillian :lol:
BenBE - So 30.03.08 20:51
Jain. Soweit ich das mitbekommen habe, muss man bei Trillian erst in das Nachrichten-Fenster klicken, damit das mit dem Scrollen normal funzt (d.h. das Log-Fenster muss den Fokus "haben").
Yogu - So 30.03.08 20:57
Silas hat folgendes geschrieben: |
Wie sieht es mit dem Doppel-Scroll-Bug aus? Kannst du den reproduzieren? |
Weder bei Firefox noch beim Windows Explorer oder Delphi 7. Mehr Programme hab ich grad nicht offen ;)
Silas hat folgendes geschrieben: |
In der neuen Version gibts alles von 4 bis 32 Bit und auch 24x24-Symbole :) . |
Wie sieht's mit 24 Bit aus? :mrgreen: (Falls du noch Lust hast, mit
IcoFX [
http://icofx.softonic.de/] geht das Umwandeln relativ schnell und schön (Alpha-Kanäle entfernt er schön gleichmäßig, dass nachher (fast) nichts eckig aussieht).
Noch ein paar Vorschläge für neue Versionen:
- Schnelles Aktivieren / Deaktivieren im Kontextmenü
- Autostart-Einstellung im Einstellungs-Fenster
- Warum das Log-Fenster entfernen? Vielleicht könnte es noch etwas ausgebaut werden
- Wenn die Maus über keinem WinControl ist, könnte doch das fokussierte Fenster gescrollt werden, oder? Das fände ich sehr nützlich.
- Das Icon im Info-Dialog hat noch keine Win2K-Alternative :mrgreen: Vielleicht wäre da auch ein transparentes PNG [http://pngdelphi.sourceforge.net/] gut.
Silas - So 30.03.08 21:11
BenBE hat folgendes geschrieben: |
Einige Programme (gesehen bei Trillian) reagieren auf das Scrollen gar nicht, solange HoverScroll gestartet ist (getestet mit Win2K, Trillian 3.1). Sobald ich HoverScroll wieder beende, funktioniert das Scrollen in Trillian wieder. |
GTA-Place hat folgendes geschrieben: |
Ist mir auch aufgefallen, aber ich dachte, dass das normal sei bei Trillian :lol: |
Ich werde mir das morgen mal ansehen, heute hab ich leider keine Zeit mehr. Funktioniert das Ganze denn mit
dem PC-Welt-Tool [
http://www.pcwelt.de/downloads/pcwelt_tools/tools/139375/index.html] dafür?
Yogu hat folgendes geschrieben: |
Silas hat folgendes geschrieben: | Wie sieht es mit dem Doppel-Scroll-Bug aus? Kannst du den reproduzieren? | Weder bei Firefox noch beim Windows Explorer oder Delphi 7. Mehr Programme hab ich grad nicht offen ;) |
Ich wüsste jetzt konkret RAD Studio 2007 und Gaijins Plainedit, scheint also irgentwie mit der VCL zusammenzuhängen :nixweiss:
Yogu hat folgendes geschrieben: |
Silas hat folgendes geschrieben: | In der neuen Version gibts alles von 4 bis 32 Bit und auch 24x24-Symbole :) . | Wie sieht's mit 24 Bit aus? :mrgreen: |
Ist bereits drin, 24 is auch zwischen 4 und 32 :wink: .
Damit arbeite ich eh schon :wink: .
Yogu hat folgendes geschrieben: |
- Schnelles Aktivieren / Deaktivieren im Kontextmenü
- Autostart-Einstellung im Einstellungs-Fenster
|
Mach ich. :)
Yogu hat folgendes geschrieben: |
- Warum das Log-Fenster entfernen? Vielleicht könnte es noch etwas ausgebaut werden
|
Keine Angst, ich hab die Unit schon noch. Bloß bei Log
dateien macht das im fertigen Programm keinen Sinn.
Yogu hat folgendes geschrieben: |
- Wenn die Maus über keinem WinControl ist, könnte doch das fokussierte Fenster gescrollt werden, oder? Das fände ich sehr nützlich.
|
Werd ich als Option hinzufügen.
Yogu hat folgendes geschrieben: |
- Das Icon im Info-Dialog hat noch keine Win2K-Alternative :mrgreen:
|
Oh, ich dachte die VCL würde das Symbol gleich beim Hinzufügen auf den Hintergrund zeichnen. Wird auch noch gemacht :wink: .
Silas - Mi 02.04.08 17:03
So, ich hab mir die Sache mit Trillian mal angesehen, und kann den Fehler repoduzieren. Das Problem besteht in dieser Codezeile der HookProc:
Delphi-Quelltext
1:
| lParam^.message := WM_NULL; |
lParam ist ein Zeiger auf die Message-Strukutur der ursprünglichen Nachricht.
Wenn ich sie weglasse, funktioniert das Scrollen mit Trillian problemlos, auch bei anderen Fenstern im Vordergrund. Anscheinend hat Trillian Probleme mit
WM_NULL.
Die Frage ist daher jetzt: Gibt es eine andere Möglichkeit, die ankommende Message zu verwerfen, als den Message-Code auf
WM_NULL zu setzen?
BenBE - Mi 02.04.08 20:17
Gab da glaube 2 Möglichkeitn:
1. Hook muss False zurückliefern (dann bricht die Nachrichtenbehandlung ab)
2. Du veränderst den Nachrichten-Inhalt so, dass du immer noch eine Hover-Nachricht erzeugst, aber der Inhalt gleichbedeutend mit einem NOP ist.
Ach ja: Wie sieht es mit dem "Standard-Verhalten wenn über keinem scrollbaren Fenster"-Verhalten aus?
Yogu - Mi 02.04.08 20:38
BenBE hat folgendes geschrieben: |
Wie sieht es mit dem "Standard-Verhalten wenn über keinem scrollbaren Fenster"-Verhalten aus? |
Ich hab schon was in der Richtung gefragt:
Silas hat folgendes geschrieben: |
Yogu hat folgendes geschrieben: | - Wenn die Maus über keinem WinControl ist, könnte doch das fokussierte Fenster gescrollt werden, oder? Das fände ich sehr nützlich.
| Werd ich als Option hinzufügen. |
Silas - Mi 02.04.08 21:06
BenBE hat folgendes geschrieben: |
1. Hook muss False zurückliefern (dann bricht die Nachrichtenbehandlung ab) |
Du meinst
Result := 0? Das erfolgt bei Veränderung der Nachricht sowieso.
BenBE hat folgendes geschrieben: |
2. Du veränderst den Nachrichten-Inhalt so, dass du immer noch eine Hover-Nachricht erzeugst, aber der Inhalt gleichbedeutend mit einem NOP ist. |
Ich denke, du meinst eine Scroll-Nachricht, oder? :wink: Ich habe Testweise einmal
wParam (das bei
WM_MOUSEWHEEL die Scrollweite sowie die Mod-Keys repräsentiert) auf 0 gesetzt, was das eigenartige Ergebnis mit sich gebracht hat, dass sich Trillian nun, wenn es den Fokus hat, in eine Richtung (nach unten) scrollen lässt, in die andere aber nicht :shock: .
BenBE hat folgendes geschrieben: |
Ach ja: Wie sieht es mit dem "Standard-Verhalten wenn über keinem scrollbaren Fenster"-Verhalten aus? |
Wo du mich gerade dran erinnerst: Wie erkenne ich das, ob ein Fenster scrollbar ist? Gibts dazu eine Funktion / Eigenschaft oder muss ich mit White- bzw. Blacklists arbeiten?
BenBE - Mi 02.04.08 21:25
Wüsste ich jetzt auf Anhieb nicht ...
Konsultiere da mal das MSDN ... Müsste da theoretisch ein Flag für in den Window-Settings geben.
Alternativ kannst Du mal schauen, ob man die Viewports abfragen kann; daran sollte das auch erkennbar sein ...
Silas - So 06.04.08 16:33
So, da ist sie (tut mir leid, dass es so lange gedauert hat):
Neue Version 2.2.3.7
[+] Schnelles (De)Aktivieren des Hooks ist nun möglich
[+] Autostart-Einstellung lässt sich über "Einstellungen" konfigurieren
[*] Problem mit Trillian durch ein kleines Workaround gefixt
[*] Für das Info-Symbol gibt es nun auch 4, 8, sowie 24-Bit-Symbole
[-] Der Logger wurde wegen zu großem Aufwand bezgl. DLLs entfernt
@Yogu: In Ordnung so?
Das Trillian-Workaround lässt nun das Trillian-Chatfenster einfach nicht mehr als Zielfenster zu. Das bedeutet natürlich auch, das man in Trillian nicht scrollen kann, wenn es nicht im Vordergrund ist.
Den Logger habe ich gestrichen, weil der Log-Code länger geworden wäre als das ganze Programm, und das ist ja nicht der Sinn der Sache.
Als Ersatz habe ich ein
kleines Tool [
http://www.silas-online.de/media/user/downloads/WindowPropertiesChecker.zip] geschrieben, das Informationen über das Fenster ausgibt, über dem sich der Mauszeiger gerade befindet. Wenn ihr ein noch ein Fenster mit dem Trillian-Fehler findet, schickt mir einfach den Klassennamen und ich füg ihn der Blacklist hinzu.
Wegen dem Standardverhalten über nichtscrollbaren Fenstern: Es gäbe die Möglichkeit, das Verhalten nach dem vorhandensein von Scrollbars festzulegen. Das Problem wäre allerdings, dass ich nicht feststellen kann, ob ein Programm die
WM_MOUSEWHEEL anderweitig abfrägt, was z.B. bei Spielen fatal wäre.
Beim Scrollen über einem nicht-WinControl: Das einzige, wo es sich realisieren lassen würde, wäre der Desktop, und der besitzt die Explorer-Fensterklasse.
Yogu - So 06.04.08 17:29
Silas hat folgendes geschrieben: |
[+] Schnelles (De)Aktivieren des Hooks ist nun möglich |
Das ist gut. Aber ich hätte noch einen Wunsch: Könnte sich das Trayicon evtl. ändern, wenn das Programm deaktiviert wird? Ich denke da an eine rote/grüne Maus, oder ein Kreuz, ein Verbotsschild oder so etwas ähnliches. Auch noch sinnvoll wäre eine Änderung des Hints.
Silas hat folgendes geschrieben: |
[+] Autostart-Einstellung lässt sich über "Einstellungen" konfigurieren |
Super :zustimm:
Silas hat folgendes geschrieben: |
[*] Für das Info-Symbol gibt es nun auch 4, 8, sowie 24-Bit-Symbole |
Das bringt bei Delphi leider nix. Es wird einfach immer das beste genommen - egal, ob es klappt. Die schwarzen Ränder sind immer noch da. Vielleicht könntest du einfach ein PNG nehmen - da klappt die Transparenz immer. Und es sieht dann auch bei 2000 schön geglättet aus :D
Grüße,
Yogu
Silas - So 06.04.08 20:44
Neue Version 2.3.0.6
[*] Info-Icon ist nur noch als 24-Bit-Variante vorhanden
[+] Beim (de)aktivieren wird nun das Trayicon und der Hint verändert
Yogu hat folgendes geschrieben: |
Das ist gut. Aber ich hätte noch einen Wunsch: Könnte sich das Trayicon evtl. ändern, wenn das Programm deaktiviert wird? Auch noch sinnvoll wäre eine Änderung des Hints. |
Ist jetzt drin :) . Ich hab im deaktivierten Zustand einfach ein Kleines Verbotsschild neben die Maus gesetzt (Ich hoffe es ist euch nicht zu klein).
Yogu hat folgendes geschrieben: |
Und es sieht dann auch bei 2000 schön geglättet aus :D |
Oje. :D In Ordnung, ich hab jetzt eine auf das Standardgrau "Vorgezeichnete" Version genommen, weil ich wegen der Open-Source-Sache keine Kompos einbauen wollte. Wehe, mir kommt jetzt einer mit einem grünen Fensterstyle :twisted: .
Yogu - So 06.04.08 21:31
Silas hat folgendes geschrieben: |
Beim (de)aktivieren wird nun das Trayicon und der Hint verändert |
Schön. Nur wo bleibt das 4 Bit-Symbol? Sorry, aber es sieht so echt nicht schön aus bei mir. Aber sonst ist es gut - das Zeichen ist eigentlich genau richtig.
Silas - Mo 07.04.08 15:14
Yogu hat folgendes geschrieben: |
Schön. Nur wo bleibt das 4 Bit-Symbol? Sorry, aber es sieht so echt nicht schön aus bei mir. Aber sonst ist es gut - das Zeichen ist eigentlich genau richtig. |
Oh, tut mir leid, hatte ich nach dem erstellen des "Deaktiviert"-Icons vergessen wieder hinzuzufügen :autsch: .
Ist jetzt gefixt (2.3.0.7).
Wie sieht es mit dem Info-Symbol aus? Ist das jetzt in Ordnung so (auch bzgl. dem Schatten usw.)?
BenBE - Mo 07.04.08 15:52
Kleiner Feature-Wunsch: Könntest Du schauen, ob Du das hinbekommst, das Tab-Leisten wie beim FF, die horizontal scrollen, beim betätigen des Mausrades auch mit gescrollt werden?
Brauch das für WinAVR, da ich dort häufig haufenweise Fenster aufhab und die IDE keine mehrzeilige Tab-Leiste unterstützt ... Da ist das sonst mit dem Aufrufen von Tags etwas Kacke ...
Silas - Mo 07.04.08 16:04
BenBE hat folgendes geschrieben: |
Kleiner Feature-Wunsch: Könntest Du schauen, ob Du das hinbekommst, das Tab-Leisten wie beim FF, die horizontal scrollen, beim betätigen des Mausrades auch mit gescrollt werden? |
Meinst du allgemein horizontales Scrollen?
Yogu - Mo 07.04.08 16:10
Silas hat folgendes geschrieben: |
Ist jetzt gefixt (2.3.0.7). |
Super :D
Silas hat folgendes geschrieben: |
ich hab jetzt eine auf das Standardgrau "Vorgezeichnete" Version genommen, weil ich wegen der Open-Source-Sache keine Kompos einbauen wollte. |
Sieht ganz gut aus.
Silas hat folgendes geschrieben: |
Wehe, mir kommt jetzt einer mit einem grünen Fensterstyle :twisted: . |
Mein Grau ist heller als deins :mrgreen:
Man sieht es aber kaum. Ist schon in Ordnung so. Und ich will jetzt noch mal ganz ausdrücklich sagen, dass ich dein Programm richtig toll finde und es auch sehr oft brauchen kann. Dass das hier nicht so aussieht, als ob ich nur meckern würde ;)
BenBE - Mo 07.04.08 16:31
Silas hat folgendes geschrieben: |
BenBE hat folgendes geschrieben: | Kleiner Feature-Wunsch: Könntest Du schauen, ob Du das hinbekommst, das Tab-Leisten wie beim FF, die horizontal scrollen, beim betätigen des Mausrades auch mit gescrollt werden? |
Meinst du allgemein horizontales Scrollen? |
Jain, wäre nice2have, brauch ich direkt jetzt aber nicht ...
Ich mein was andres:
Wenn Du beim Firefox die Tableiste offen hast und dort ganz viele Tabs offen sind, erweitert der FF die Tableiste doch rechts mit den Pfeilen. Wenn Du über der Tableiste bist, kannst Du durch Auf\Ab-Scrollen nach Links\Rechts in der Leiste navigieren.
Dieses Verhalten bräuchte ich auch für die Standard-TabControl der WinAPI, weil ich wie oben erwähnt bei WinAVR genau an dieser Stelle nicht wie im FF möglich scrollen kann, was ziemlich nervt ;-)
Silas - Mo 07.04.08 16:47
Yogu hat folgendes geschrieben: |
Silas hat folgendes geschrieben: | Wehe, mir kommt jetzt einer mit einem grünen Fensterstyle :twisted: . |
Mein Grau ist heller als deins :mrgreen: |
:bawling: :autsch: :D
BenBE hat folgendes geschrieben: |
Jain, wäre nice2have, brauch ich direkt jetzt aber nicht ... |
Ich fügs einfach mal ein, ist ja nur eine 2. Message.
BenBE hat folgendes geschrieben: |
Ich mein was andres:
Wenn Du beim Firefox die Tableiste offen hast und dort ganz viele Tabs offen sind, erweitert der FF die Tableiste doch rechts mit den Pfeilen. Wenn Du über der Tableiste bist, kannst Du durch Auf\Ab-Scrollen nach Links\Rechts in der Leiste navigieren.
Dieses Verhalten bräuchte ich auch für die Standard-TabControl der WinAPI, weil ich wie oben erwähnt bei WinAVR genau an dieser Stelle nicht wie im FF möglich scrollen kann, was ziemlich nervt ;-) |
Ich versuch's mal, kann aber nichts versprechen. In visueller Programmierung auf API-Ebene bin ich leider nicht sonderlich erfahren. :nixweiss:
BenBE - Mo 07.04.08 20:05
Silas hat folgendes geschrieben: |
Yogu hat folgendes geschrieben: | Silas hat folgendes geschrieben: | Wehe, mir kommt jetzt einer mit einem grünen Fensterstyle :twisted: . |
Mein Grau ist heller als deins :mrgreen: | :bawling: :autsch: :D
BenBE hat folgendes geschrieben: | Jain, wäre nice2have, brauch ich direkt jetzt aber nicht ... | Ich fügs einfach mal ein, ist ja nur eine 2. Message. |
k, klingt gut ;-)
Silas hat folgendes geschrieben: |
BenBE hat folgendes geschrieben: | Ich mein was andres:
Wenn Du beim Firefox die Tableiste offen hast und dort ganz viele Tabs offen sind, erweitert der FF die Tableiste doch rechts mit den Pfeilen. Wenn Du über der Tableiste bist, kannst Du durch Auf\Ab-Scrollen nach Links\Rechts in der Leiste navigieren.
Dieses Verhalten bräuchte ich auch für die Standard-TabControl der WinAPI, weil ich wie oben erwähnt bei WinAVR genau an dieser Stelle nicht wie im FF möglich scrollen kann, was ziemlich nervt ;-) | Ich versuch's mal, kann aber nichts versprechen. In visueller Programmierung auf API-Ebene bin ich leider nicht sonderlich erfahren. :nixweiss: |
Ich nögel schon, wenn's nicht geht :mrgreen:
Ach ja: Setz das Teil bei mir in der Praktikumsstelle als Arbeitserleichterun ein, weil ich da auch häufig haufenweise Fenster mit Scrollbars bedienen muss. Da ist das Programm ne richtige Erleichterung, wenn man nicht ständig klicken muss ^^
BenBE - So 27.04.08 14:43
Ach ja, mal ne Feature-Request-Geschichte:
- Kannst Du schauen, ob sich Copy-on-Select implementieren lässt? Also wenn ich in nem beliebigen Textfeld Text markiere, dass der dann automatisch in die Zwischenablage eingefügt wird?
- Kannst Du auf die mittlere Maustaste (Drücken des Scrollrades) das Einfügen der Zwischenablage legen?
BenBE.
Silas - So 27.04.08 19:28
Moin,
Erstmal:
BenBE hat folgendes geschrieben: |
Ach ja: Setz das Teil bei mir in der Praktikumsstelle als Arbeitserleichterun ein, weil ich da auch häufig haufenweise Fenster mit Scrollbars bedienen muss. Da ist das Programm ne richtige Erleichterung, wenn man nicht ständig klicken muss ^^ |
Freut mich!
BenBE hat folgendes geschrieben: |
Ach ja, mal ne Feature-Request-Geschichte:
- Kannst Du schauen, ob sich Copy-on-Select implementieren lässt? Also wenn ich in nem beliebigen Textfeld Text markiere, dass der dann automatisch in die Zwischenablage eingefügt wird?
- Kannst Du auf die mittlere Maustaste (Drücken des Scrollrades) das Einfügen der Zwischenablage legen? |
Sollte sich eigentlich beides implementieren lassen. Bis zur nächsten Version könnte es allerdings noch ein wenig dauern, da ich im Moment, was die Schule betrifft, ziemlich im Stress steck.
Wo ich mir das gerade so ansehe... Sieht aus, als müsste ich HoverScroll in HoverMatrix umbenennen :lol:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!