Español
Eingangshalle

Tatstatur Layout einstellen

 
- Página 1 -



Stephan
Sonneborn


¡Hola zusammen,

Yo möchte por Profano el Tastaturlayout en Inglés ajustar.
Normalerweise mache Yo el así:
DECLARE _Fontname$
DECLARE Fontname#
DIM Fontname#, ~KL_NAMELENGTH'9
DEF LoadKeyboardLayout(2) !"USER32", "LoadKeyboardLayoutA"
DEF GetKeyboardLayoutName(1) !"USER32","GetKeyboardLayoutNameA"
GetKeyboardLayoutName(Fontname#)
_Fontname$ = "000000409"
LoadKeyboardLayout(_Fontname$, ~KLF_ACTIVATE)

Aber el führt a uno Zugriffsverletzung en USER32.DLL.

Wer weiß Rat?

(WIN10, 64Bit)

52 kB
Hochgeladen:21.03.2022
Ladeanzahl68
Descargar
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
21.03.2022  
 



« Dieser Contribución wurde como Solución gekennzeichnet. »


Georg
Teles
Bueno Abend,

ahem, el Función LoadKeyboardLayout esperado una Adresse a LayoutID (Addr(TLayout#)) ... el Función UnloadKeyboardLayout esperado wiederrum el Handle, welches de el Función LoadKeyboardLayout generiert wurde.

Im Ejemplo habe rápidamente algo gebastelt (aktuelles Layout se ausgelesen, englische & danach tschechische Tastaturlayout voluntad hinzugefügt y anschließend lejos & el ursprüngliche Layout eingestellt):
DECLARE aktuelle$, TLayout$, TLayout#, hLayoutID_en&, hLayoutID_cs&
DIM TLayout#, 9'~KL_NAMELENGTH'9
DEF LoadKeyboardLayout(2)! "USER32", "LoadKeyboardLayoutA"
DEF GetKeyboardLayoutName(1)! "USER32","GetKeyboardLayoutNameA"
DEF UnloadKeyboardLayout(1)! "USER32","UnloadKeyboardLayout"
cls
' aktuelle Tastatur
GetKeyboardLayoutName(Addr(TLayout#))
imprimir "aktuelle Tastatur: "+String$(TLayout#,0)
imprimir
' aktuelle speichern
aktuelle$ = String$(TLayout#,0)
WAITINPUT
' englische Tastaturlayout hinzufügen
TLayout$ = "00000409"
String TLayout#,0 = TLayout$
' englische Layout ID sichern !
hLayoutID_en& = LoadKeyboardLayout(Addr(TLayout#), 1)'~KLF_ACTIVATE)
imprimir "LayoutID_en: ";(hLayoutID_en&);" (>0 = Erfolg, LayoutID)"
GetKeyboardLayoutName(Addr(TLayout#))
imprimir "englische Tastatur: "+String$(TLayout#,0)
imprimir
WAITINPUT
' tschechische Tastaturlayout hinzufügen
TLayout$ = "00000405"
String TLayout#,0 = TLayout$
' tschechische Layout ID sichern !
hLayoutID_cs& = LoadKeyboardLayout(Addr(TLayout#), 1)'~KLF_ACTIVATE)
imprimir "LayoutID_cs: ";hLayoutID_cs&;" (>0 = Erfolg, LayoutID)"
GetKeyboardLayoutName(Addr(TLayout#))
imprimir "tschechische Tastatur: "+String$(TLayout#,0)
imprimir
WAITINPUT
' englische & tschechische Layout entfernen
imprimir UnloadKeyboardLayout(hLayoutID_en&);" (1 = Erfolg/EN-Layout lejos)"
imprimir UnloadKeyboardLayout(hLayoutID_cs&);" (1 = Erfolg/CS-Layout lejos)"
imprimir
' en ursprüngliches Layout zurücksetzen
String TLayout#,0 = aktuelle$
' vorheriges Layout neu invitar !
imprimir LoadKeyboardLayout(Addr(TLayout#), 1);" (1 = Erfolg)"'~KLF_ACTIVATE)
GetKeyboardLayoutName(Addr(TLayout#))
imprimir "aktuelle Tastatur wiederhergestellt: "+String$(TLayout#,0)
'----------------------------------------------------
DISPOSE TLayout#
WAITINPUT

Editar:
En LoadKeyboardLayout(Addr(TLayout#), 1)  kann el String direkt benutzt voluntad: LoadKeyboardLayout(Addr(TLayout$), 1) wogegen el Función GetKeyboardLayoutName(Addr(TLayout#))  una Zona benötigt.

Grüße Georg
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

27.03.2022  
 




Sven
Bader
¡Hola Stephan,

bist du dir sicher, dass dies en Windows 10 überhaupt todavía así simplemente va? El Systeme riegeln solche tiefen Eingriffe sí siempre más de.

Mit media zwei Schüssen en el Blaue bin Yo desafortunadamente gescheitert, 1. Fontname# großzügiger dimensionieren, 2. El erste "0" löschen, el Fehler kommt trotzdem auch en me.

Yo habe folgendes en Stackoverflow gefunden, hier se auch una Null weniger verwendet y lo se kommentiert, dass el Keyboardlayout así lediglich previsto aber todavía no aktiviert se y eben en el Kommentaren el Verdacht, dass lo bajo Windows 10 no mehr va. [...]  (Stackoverflow)

Grüße
Sven
 
22.03.2022  
 




Stephan
Sonneborn
¡Hola Sven, vielen Dank para Su Tests. Yo inzwischen herausbekommen, dass el Übergabe uno Stings, z.B. "00000407" para DE oder "00000409" para EN el Tastaturlayout umstellt. Yo debería ahora sólo todavía wissen, como el aktuelle Taststurlayout heißt. Also el, bevor Yo umstelle. Dann kann Yo al Programmende otra vez zurückstellen...
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
24.03.2022  
 




Georg
Teles
Bueno Abend,

ahem, el Función LoadKeyboardLayout esperado una Adresse a LayoutID (Addr(TLayout#)) ... el Función UnloadKeyboardLayout esperado wiederrum el Handle, welches de el Función LoadKeyboardLayout generiert wurde.

Im Ejemplo habe rápidamente algo gebastelt (aktuelles Layout se ausgelesen, englische & danach tschechische Tastaturlayout voluntad hinzugefügt y anschließend lejos & el ursprüngliche Layout eingestellt):
DECLARE aktuelle$, TLayout$, TLayout#, hLayoutID_en&, hLayoutID_cs&
DIM TLayout#, 9'~KL_NAMELENGTH'9
DEF LoadKeyboardLayout(2)! "USER32", "LoadKeyboardLayoutA"
DEF GetKeyboardLayoutName(1)! "USER32","GetKeyboardLayoutNameA"
DEF UnloadKeyboardLayout(1)! "USER32","UnloadKeyboardLayout"
cls
' aktuelle Tastatur
GetKeyboardLayoutName(Addr(TLayout#))
imprimir "aktuelle Tastatur: "+String$(TLayout#,0)
imprimir
' aktuelle speichern
aktuelle$ = String$(TLayout#,0)
WAITINPUT
' englische Tastaturlayout hinzufügen
TLayout$ = "00000409"
String TLayout#,0 = TLayout$
' englische Layout ID sichern !
hLayoutID_en& = LoadKeyboardLayout(Addr(TLayout#), 1)'~KLF_ACTIVATE)
imprimir "LayoutID_en: ";(hLayoutID_en&);" (>0 = Erfolg, LayoutID)"
GetKeyboardLayoutName(Addr(TLayout#))
imprimir "englische Tastatur: "+String$(TLayout#,0)
imprimir
WAITINPUT
' tschechische Tastaturlayout hinzufügen
TLayout$ = "00000405"
String TLayout#,0 = TLayout$
' tschechische Layout ID sichern !
hLayoutID_cs& = LoadKeyboardLayout(Addr(TLayout#), 1)'~KLF_ACTIVATE)
imprimir "LayoutID_cs: ";hLayoutID_cs&;" (>0 = Erfolg, LayoutID)"
GetKeyboardLayoutName(Addr(TLayout#))
imprimir "tschechische Tastatur: "+String$(TLayout#,0)
imprimir
WAITINPUT
' englische & tschechische Layout entfernen
imprimir UnloadKeyboardLayout(hLayoutID_en&);" (1 = Erfolg/EN-Layout lejos)"
imprimir UnloadKeyboardLayout(hLayoutID_cs&);" (1 = Erfolg/CS-Layout lejos)"
imprimir
' en ursprüngliches Layout zurücksetzen
String TLayout#,0 = aktuelle$
' vorheriges Layout neu invitar !
imprimir LoadKeyboardLayout(Addr(TLayout#), 1);" (1 = Erfolg)"'~KLF_ACTIVATE)
GetKeyboardLayoutName(Addr(TLayout#))
imprimir "aktuelle Tastatur wiederhergestellt: "+String$(TLayout#,0)
'----------------------------------------------------
DISPOSE TLayout#
WAITINPUT

Editar:
En LoadKeyboardLayout(Addr(TLayout#), 1)  kann el String direkt benutzt voluntad: LoadKeyboardLayout(Addr(TLayout$), 1) wogegen el Función GetKeyboardLayoutName(Addr(TLayout#))  una Zona benötigt.

Grüße Georg
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

27.03.2022  
 




Georg
Teles
Nabend nochmals,

el para Schluss auskommentierte Línea zuvor muss doch rein:
' vorheriges Layout geladen: como dieses ya existiert ha, muss no necesariamente
' neu geladen voluntad, nachfolgende Línea kann hier vernachlässigt voluntad!)
'imprimir LoadKeyboardLayout(Addr(TLayout#), 1);" (1 = Erfolg)"'~KLF_ACTIVATE)

si uno mehrere Tastaturlayouts anfangs ha y el Ejemplo ausführt, se el erste Layout para Schluss de el Liste ausgewählt ... also más bien bewusst el vorherige Layout, qué zuvor eingestellt war, invitar. (habe el Línea en el vorherigen Post otra vez kommentiert)

Editar:
como fällt me una, hatte veces una PCU geschrieben, el en el Grunde el Liste el Idiomas beinhaltet (Sprachwerte en Dezimalangaben, esta necesario aún en Hexadezimale umgewandelt voluntad siehe para Alemán 1031 = Hex 0407)  [...] 

hatte esta Liste dafür verwendet  [...] 
 
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

27.03.2022  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

3.122 Views

Untitledvor 0 min.
Stephan Sonneborn13.01.2023
Georg Teles01.10.2022
Uwe ''Pascal'' Niemeier23.07.2022
Ernst29.05.2022
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Eingangshalle  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie