Ich habe ein kleines Problem mit einem DLLCall, und zwar funktioniert die Funktion _GetKeyboardLayout schon perfekt (Identifier)
Doch die Funktion um ein neues Tastaturlayout zu setzen gibt mir immer 0x0 zurück und nichts verändert sich.
Script:
Spoiler anzeigen
$Layout = _GetKeyboardLayoutName()
MsgBox(64, "Hex Identifier des Tastatur Layouts", "0x" & $Layout)
;$LayoutNew = _LoadKeyboardLayout($Layout)
;MsgBox(64, "Hex Identifier des neuen Tastatur Layouts", "0x" & $LayoutNew)
Func _GetKeyboardLayoutName()
$Buffer_Struct = DllStructCreate("char[9];")
$pBuffer_Struct = DllStructGetPtr($Buffer_Struct)
$aReturn_Error = DllCall("User32", "bool", "GetKeyboardLayoutName", "ptr", $pBuffer_Struct)
$aReturn_Name = DllStructGetData($Buffer_Struct, 1)
Return SetError($aReturn_Error[0], 0, $aReturn_Name)
EndFunc
Func _LoadKeyboardLayout($HKL)
$Buffer_Struct = DllStructCreate("char[9];")
DllStructSetData($Buffer_Struct, 1, $HKL)
$pBuffer_Struct = DllStructGetPtr($Buffer_Struct)
$Return = DllCall("User32", "char", "LoadKeyboardLayout", "ptr", $pBuffer_Struct, "uint", "KLF_ACTIVATE")
Return SetError($Return, 0, $Return)
EndFunc