AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Tastaturbelegung ersetzen

Ein Thema von Frühlingsrolle · begonnen am 12. Feb 2020 · letzter Beitrag vom 14. Feb 2020
Antwort Antwort
Seite 1 von 2  1 2   
Frühlingsrolle

Registriert seit: 31. Aug 2019
183 Beiträge
 
#1

Tastaturbelegung ersetzen

  Alt 12. Feb 2020, 21:15
Hallo Forum

Problemstellung:
Da an Notebooks so manche Tasten das zeitliche segnen, kam ich auf die Idee, diese durch andere Tasten zu ersetzen.
Geplant ist ein globaler Keyboard-Hook, der in einer Hintergrundanwendung läuft und Taste A durch Taste B ersetzen soll.
Ist das denn so überhaupt möglich und hat schon jemand Erfahrung damit gemacht, was konkret dafür nötig ist?
Es sollte auf Windows 7 und 10 gleichermaßen funktionieren.
Politicians are put there to give you the idea you have freedom of choice. You don't. You have no choice. You have owners. They own you. They own everything. They don't want well informed, well educated people capable of critical thinking. (George Denis Patrick Carlin)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
35.267 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Tastaturbelegung ersetzen

  Alt 12. Feb 2020, 21:51
Ja, ein globaler Keyboard-Hook wäre möglich, aber ...


https://www.microsoft.com/en-us/down....aspx?id=22339

Du kennst doch den Unterschied zwischen QUERTY, QUERTZ und anderen Layouts?
Tja, hiermit kannst dir sowas selbst erstellen.

Die Tastatur sendet einen ScanCode und im Tastaturlayout ist definiert welchen KeyCode (Taste) er darstellen soll.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (12. Feb 2020 um 21:56 Uhr)
  Mit Zitat antworten Zitat
Frühlingsrolle

Registriert seit: 31. Aug 2019
183 Beiträge
 
#3

AW: Tastaturbelegung ersetzen

  Alt 12. Feb 2020, 22:23
Ein Layout lässt sich damit speichern und als Setup sowie DLL ausgeben.
Von einer Änderung merke ich hier nichts. Die Tasten geben im Notepad und im Browser jenes wieder, wie vor der Layout-Änderung.
Im Testbereich der Anwendung scheint es zu funktionieren. Soll das so sein?
Ich möchte schon, dass das Layout auch in anderen Fenstern entsprechend funktioniert.

Okay, die Layoutauswahl spinnt ein wenig herum.
Sobald eine Auswahl im Trayicon ausgewählt wurde, springt die Auswahl auf den obersten Wert zurück, sobald der Fokus weg ist.
Wenn man dann ein paar Mal die Auswahl ändert, dann wird es irgendwann übernommen und funktioniert.
Sowas Ähnliches möchte ich nachbauen - das hoffentlich auf Anhieb auch übernommen wird.
Gibt es dafür bestimmte Funktionen, dass man etwas registrieren / aktivieren muss, bevor man mit einem globalen Hook Änderungen vornimmt?
Politicians are put there to give you the idea you have freedom of choice. You don't. You have no choice. You have owners. They own you. They own everything. They don't want well informed, well educated people capable of critical thinking. (George Denis Patrick Carlin)

Geändert von Frühlingsrolle (12. Feb 2020 um 22:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
35.267 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Tastaturbelegung ersetzen

  Alt 13. Feb 2020, 11:26
Es kann sein, dass Windows nun auch nur für die aktive Anwendung die Eingabesprache/Tastaturlayout ändern kann.
Jedenfalls ist bei meinem russischen Kollegen die Sprache meistens nur im Browser (Firefox) umgestellt, die er dann in der Taskleiste bzw. via Windows-Shortcut schnell ändern kann, aber im Delphi ist es meistens deutsch, außer er spielt mal wieder in einem russischen Quellcode rum.

Ich denke mal, dass man im großen Einstellungsfenster das einfacher global umstellen kann, anstatt über die Taskleiste/Shortcut.


Eine kurze Suche im MSDN sagt mir, dass du mal dort weitersuchen könntest:

MSDN-Library durchsuchenActivateKeyboardLayout
MSDN-Library durchsuchenLoadKeyboardLayout
MSDN-Library durchsuchenUnloadKeyboardLayout

MSDN-Library durchsuchenGetKeyboardLayoutList

MSDN-Library durchsuchenGetKeyboardLayout
MSDN-Library durchsuchenGetKeyboardLayoutName

MSDN-Library durchsuchenWM_INPUTLANGCHANGE
MSDN-Library durchsuchenWM_INPUTLANGCHANGEREQUEST

https://docs.microsoft.com/de-de/win...ectedfrom=MSDN
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
582 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Tastaturbelegung ersetzen

  Alt 13. Feb 2020, 11:53
Sowas geht auch relativ simpel mit AutoHotkey. Ich habe mir damit z.B. bei einer englischen Tastatur die Umlaute auf AltGr+Sondertasten gelegt:

<^>!;::Send ö
+<^>!;::Send Ö

<^>!'::Send ä
<^>!@::Send Ä

<^>![::Send ü
<^>!{::Send Ü

<^>!-::Send ß

Solange nicht gerade die Sondertasten (Shift, Alt, Ctrl) kaputt sind, funktioniert das prima.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
35.267 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Tastaturbelegung ersetzen

  Alt 13. Feb 2020, 12:14
Auto-Hotkey hat hoffentlich nicht überall einfach so Zugriff.

Wie sieht es dort z.B. bei Passwortabfragen oder der Windowsanmeldung aus? (OK, man kann die Passwörter ändern, damit sie die bösen Zeichen nicht enthalten)
Es wäre schon fraglich, wenn z.B. soein "Keylogger" einfach so dort mitlesen und gar Daten manipulieren kann, wo Windows dafür extra den Desktop umschaltet, damit nicht jedes Programm dort Zugriff hat.


Auch in der Reparaturkonsole/Windowsinstallation/... laufen solche Programme nicht, aber Tastaturlayouts kann man dort problemlos laden/benutzen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.586 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Tastaturbelegung ersetzen

  Alt 13. Feb 2020, 13:25
Ich hätte jetzt eine ganz abwegige Idee: Neue Tastatur kaufen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.411 Beiträge
 
Delphi 5 Professional
 
#8

AW: Tastaturbelegung ersetzen

  Alt 13. Feb 2020, 14:57
Macht auf mich den Eindruck "Warum einfach, wenn es auch umständlich geht?". Mein erster Versuch wäre, die Tastatur zu reinigen, denn dadurch sollte das Problem schon zu beheben sein (wenn man mal den Fall "Verschleiß" außen vor lässt).

Grüße
Dalai
  Mit Zitat antworten Zitat
Frühlingsrolle

Registriert seit: 31. Aug 2019
183 Beiträge
 
#9

AW: Tastaturbelegung ersetzen

  Alt 13. Feb 2020, 17:32
Abgebrochene Tasten (auf einem Notebook) lassen sich nicht wieder einbauen, auch nicht nach dem Saubermachen. Und eine neue (externe) Tastatur kauft man sich deswegen auch nicht - zu unwirtschaftlich.
Mein Vorhaben soll auch nur temporär aushelfen, bis ein neues "Bauteil" gegeben ist.

Hab Dank, für die Recherche, himitsu!
Damit sollte ich mein Vorhaben umsetzen können.
Politicians are put there to give you the idea you have freedom of choice. You don't. You have no choice. You have owners. They own you. They own everything. They don't want well informed, well educated people capable of critical thinking. (George Denis Patrick Carlin)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
615 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Tastaturbelegung ersetzen

  Alt 13. Feb 2020, 17:34
Ich hätte jetzt eine ganz abwegige Idee: Neue Tastatur kaufen.
Wenn's die im Laptop fest eingebaute ist dürfte das eher keine Option darstellen, oder?
Siehe ersten Beitrag des Themas.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf