PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Win 7 x64 - Fensterfokus wird gestohlen, Dell Vostro 3550


Spasstiger
2012-09-29, 23:16:07
Ich habe gerade ein verzwicktes Problem an meinem Dell Vostro 3550 mit Windows 7 x64 (Professional).
Die Quickset-Software von Dell, die zur vollständigen Nutzung der Sonderfunktionstasten wie z.B. Lautstärke lauter/leister, Tastaturbeleuchtung aus/an, Bildschirm heller/dunkler etc. benötigt wird, stiehlt mir permanent den Fokus. Ich hab das Problem mittlerweile eingrenzen können, es liegt am Modul für die Tastaturbeleuchtung. Dieses veranlasst nach einer einstellbaren Zeit der Inaktivität das Ausschalten der Tastaturbeleuchtung (z.B. 30 Sekunden), um den Akku nicht unnötig zu belasten. Jedesmal, wenn die Tastaturbeleuchtung ausgeht, setzt sich die Quickset-Software unsichtbar in den Vordergrund und stiehlt den Fokus. Ich sehe dann weiterhin das vorige Fenster vor mir, aber muss erst wieder reinklicken, um dort Eingaben tätigen zu können. Auch wenn ich manuell die Tastaturbeleuchtung umschalte, wird der Fensterfokus gestohlen. Ein Deinstallieren der Quickset-Software behebt das Problem, aber mir fehlen dann die gesamten HUD-Infos, die beim Drücken der Sonderfunktionstasten angezeigt werden und mir wichtig sind.

Jetzt habe ich rausgefunden, dass ich einen Registry-Eintrag habe, den es unter Windows 7 gar nicht geben darf:
HKEY_CURRENT_USER\Control Panel\Desktop\ForegroundLockTimeout
Diesen Eintrag hab ich gelöscht und das behebt (nach einem Neustart) tatsächlich das Problem, Quickset stiehlt mir nicht mehr den Fensterfokus. Allerdings war der Registry-Eintrag nach kurzer Nutzungszeit wieder da und Quickset hat mir wieder den Fokus gestohlen.

Mit dem Process Monitor hab ich auch den Übeltäter für das Setzen des unerlaubten Registry-Eintrags gefunden, es ist das Firefox-Addon "Fingerfox", das ich zur Kommunikation mit meiner Fingerprint-Reader-Software (DigitalPersona) einsetze. Das originale DigitalPersona-Addon ist leider nicht kompatibel mit der aktuellen Firefox-Version.

Wie erreiche ich jetzt am Einfachsten, dass Fingerfox nicht mehr diesen Registry-Eintrag setzt/erstellt? Oder kennt Jemand alternative Fingerprint-Reader, die stets mit den aktuellen Firefox-Versionen funktionieren.
Oder kennt vielleicht Jemand sogar eine Lösung für die eigentliche Ursache namens Dell Quickset? In den Dell-Foren gibts keine brauchbare Lösung, obwohl das Problem mit dem "focus stealing" durch Quickset seit 2010 im Dell-Community-Forum diskutiert wird und sogar schon von Reviewern bemängelt wurde. Ich bin auf eigene Faust bei der Problemlösung schon weiter gekommen als sämtliche Postings, die ich dazu im Dell-Forum gefunden habe. Wenn man schon lesen muss, dass Jemanden dreimal erfolglos das Mainboard wegen diesem Problem getauscht wurde ... sagen wir so, es scheint Dell bei dem Thema an Kompetenz zu mangeln, weshalb ich eine Workaround-Lösung für aussichtsreicher halte als das Problem an der Wurzel zu packen.

Sephiroth
2012-09-29, 23:45:26
Wie erreiche ich jetzt am Einfachsten, dass Fingerfox nicht mehr diesen Registry-Eintrag setzt/erstellt?
Die XPI-Datei vom Addon entpacken (ist nur ein umbenanntes ZIP-File), die Stelle im Code finden, auskommentieren und die Datei im XPI aktualisieren - so im groben.

Spasstiger
2012-09-29, 23:59:28
Fingerfox ist leider als kompilierte Executable abgelegt und nicht als XPI-Datei. Muss das Problem wohl im Bugtracker beim Entwickler posten: http://amews.net/bugtracker/.
Es ist ja nicht nur das Problem, dass Fingerfox den Registry-Eintrag überhaupt erstellt, sondern dass es den Wert auch noch auf 0 setzt, was imo weit über die Kompetenzen eines Firefox-Addons hinaus geht.

/EDIT: Das Downloadformat von Fingerfox ist natürlich auch XPI, ändert aber nix daran, dass sich der Code darin bereits in eine Binary gebacken ist.

Siegfried
2012-09-30, 05:11:59
man könnte auch nen kleines script schreiben dass den reg eintrag immer wieder automatisch löscht

Spasstiger
2012-09-30, 11:36:50
man könnte auch nen kleines script schreiben dass den reg eintrag immer wieder automatisch löscht
Leider muss ich jedesmal neustarten, damit die Änderung auch übernommen wird. Das Setzen des Werts wird dagegen sofort übernommen. Ich will also schlicht verhindern, dass Fingerfox diesen Registry-Eintrag erstellt. Selbst Spybot S&D meckert nicht ...
Ich habe übrigens auch andere Fingerprint-Reader-Software durchgetestet, aber entweder erkennen die meinen Sensor nicht oder arbeiten nicht mit Firefox 15 zusammen. Der einzige Weg ist derzeit das Addon Fingerfox und das setzt eben unerwünschte Registry-Werte.

/EDIT: Der Hund mit Fingerfox liegt wohl noch woanders begraben. Hab festgestellt, dass mir Quickset auch dann nicht den Fokus stiehlt, wenn ich ForegroundLockTimeout auf den im Netz propagierten Wert "30d40" setze. Hab dann mal die Berechtigungen meines Users für den gesamten Schlüssel "HKEY_CURRENT_USER\Control Panel\Desktop" so geändert, dass Fingerfox den Wert nicht ändern kann. Tatsächlich bleibt der Wert "30d40" nun auch erhalten, wenn ich Fingerfox benutze, aber trotzdem setzt mit der Nutzung von Fingerfox auch das Problem des "focus stealing" durch Quickset wieder ein.
Kurz: Löschen von ForegroundLockTimeout in der Registry oder Setzen auf "30d40" behebt nach einem Systemneustart das "focus stealing". Nach der Nutzung von Fingerfox besteht das Problem aber wieder, egal was in der Registry steht.

/EDIT2: Nach einem weiteren Neustart von Windows ist das Problem jetzt doch behoben. Fingerfox funktioniert und das Fokus-Verhalten bleibt wie gewünscht. Könnte nur sein, dass es anderer Software nicht so schmeckt, dass sie in dem Registry-Schlüssel "HKEY_CURRENT_USER\Control Panel\Desktop" keine Werte ändern darf.

Sephiroth
2012-09-30, 23:21:22
Fingerfox ist leider als kompilierte Executable abgelegt und nicht als XPI-Datei. Muss das Problem wohl im Bugtracker beim Entwickler posten: http://amews.net/bugtracker/.
Es ist ja nicht nur das Problem, dass Fingerfox den Registry-Eintrag überhaupt erstellt, sondern dass es den Wert auch noch auf 0 setzt, was imo weit über die Kompetenzen eines Firefox-Addons hinaus geht.

/EDIT: Das Downloadformat von Fingerfox ist natürlich auch XPI, ändert aber nix daran, dass sich der Code darin bereits in eine Binary gebacken ist.
Ja dann klappt das natürlich nicht so ohne weiteres. Du könntest aber probieren das Programm mit einem Hexeditor zu öffnen und den ASCII Code von ForegroundLockTimeout in etwas anderes mit gleicher länger abzuändern.

Der Wert 0x30d40 ist übrigens der Default-Wert -> http://technet.microsoft.com/en-us/library/cc957208.aspx

Read-only Modus auf HKCU\Control Panel\Desktop wird dann problematisch, wenn du Desktop-Einstellungen (z.b. Hintergrundbild, Bildschirmschoner oder Theme) ändern möchtest. Du solltest dann zumind. bei den Subkeys die Schreibrechte wieder aktiveren.

Spasstiger
2012-10-01, 12:46:25
Ich hab mal mit einem Hexeditor die verschiedenen Dateien von Fingerfox nach "ForegroundLockTimeout" durchsucht, aber nix gefunden. Ist es evtl. eine externe Routine, die die Registry ändert? Process Monitor sagt auf jeden Fall, es sei Fingerfox.

Sephiroth
2012-10-01, 21:46:47
Sicher das die Änderung von "Fingerfox (SE).exe" gemacht wird?

Bei Spybot Search&Destroy kann man afaik die Registry überwachen lassen und Änderungen verbieten (Resident > TeaTimer). Wobei ich nicht weiß ob nur bestimmte Keys überwacht werden.

Siegfried
2012-10-02, 10:07:23
ich sehe da spontan 3 möglichkeiten:
- irgendwas scripten das alle x sec die mouse bewegt oder irgendeinen key sendet (eventuell registriert das programm die aktivität aber nicht)
- die "30 sec" in cheat engine suchen und einfach immer wieder neu schreiben
- schauen ob man das programm mit ollydbg gepatcht bekommt (recht kompliziert weil in assembly)

Spasstiger
2012-10-03, 09:51:43
Ich will doch, dass die Tastaturbeleuchtung ausgeht, wenn ich z.B. in der Bus oder der Bahn eine PDF lese, um den Akku zu schonen. Und ich will auch nicht jedesmal händisch die Beleuchtung abschalten und ggf. wieder einschalten. Die Automatik ist wunderbar. Doof ist nur, dass die Quickset-Anwendung sich dann jedesmal in der Vordergrund setzt. Die Automatik könnte ich direkt in Quickset ausschalten, wenn ich sie nicht wünschen würde.

Die Automatik geht übrigens auch ohne Quickset, da ist wohl ein default-Wert im Tastaturcontroller eingespeichert. Aber auf die Quickset-Anwendung will ich wegen den HUD-Anzeigen und wegen den drei dedizierten Zusatztasten rechts über der Tastatur, deren Funktion mit Quickset definierbar ist, nicht verzichten.

Sicher das die Änderung von "Fingerfox (SE).exe" gemacht wird?
Ja:
10:18:47,0387507 Fingerfox (SE).exe 6768 RegSetValue HKCU\Control Panel\Desktop\ForegroundLockTimeout SUCCESS Type: REG_DWORD, Length: 4, Data: 0

Ich beobachte gerade, ob noch andere Prozesse den Wert ändern.

Bei Spybot Search&Destroy kann man afaik die Registry überwachen lassen und Änderungen verbieten (Resident > TeaTimer). Wobei ich nicht weiß ob nur bestimmte Keys überwacht werden.
Hatte ich schon mit Teatimer installiert, aber Spybot S&D hat bei der Änderung des Reg-Keys nicht gemeckert.

/EDIT: Ich hab jetzt einen Bug Report beim Fingerfox-Author geschrieben: http://amews.net/bugtracker/?btsite=viewbug&bid=107.

Sephiroth
2012-10-03, 18:36:21
Ich hab's gefunden. Der Wert wird indirekt über die Win-API Funktion SystemParametersInfo (http://msdn.microsoft.com/en-us/library/windows/desktop/ms724947%28v=vs.85%29.aspx) innerhalb der Funktion formGetFocus gesetzt und nicht direkt als RegKey.

Schick mir eine PN mit deiner Mailadresse, dann sende ich dir eine gepatchte Version zu.

Spasstiger
2012-10-03, 20:57:52
@Sephi: Klingt super, PN ist raus. :)