¿Cómo logra Yi Language el cambio de estado del método de entrada del sistema? ¡Esperando en línea, se agregará después de la implementación!
Conjunto ventana conjunto 1
. Identificador del método de entrada de variable ensamblada, , , "0"
Subrutina __StartWindow_Create_Complete
Método de entrada de variable local, entero
Variable de variable local, entero
Número de métodos de entrada de variables locales, entero
Nombre de variable local, tipo de texto
Número de métodos de entrada = . GetKeyboardLayoutList (0, InputMethodHandle)
Redefinir matriz (InputMethodHandle, false, InputMethodNumber)
GetKeyboardLayoutList (InputMethodNumber, InputMethodHandle).
Primero realice un ciclo de conteo (recuento del método de entrada, variable)
Nombre = obtener texto en blanco (255)
ImmGetDescriptionA (identificador del método de entrada [variable], nombre, tome la longitud del texto (nombre))
Si es verdadero (variable = 1)
Nombre = "Inglés (EE. UU.)"
. Fin si es verdadero
ComboBox1.AddItem (Nombre, Variable)
Si es verdadero (FindText (Nombre, "Ortografía completa", , Falso) ≠ -1)
ActivateKeyboardLayout (InputMethodHandle [Variable], 0)
ComboBox1.CurrentSelected = Variable - 1
Si es verdadero final
Cuenta el final del bucle ()
Subrutina _ComboBox1_ListItemsSelected
ActivateKeyboardLayout (InputMethodHandle [ComboBox1.FetchItemValue (ComboBox1. Elemento actualmente seleccionado)], 0)
.Versión 2
.DLL Comando GetKeyboardLayout, entero , , "GetKeyboardLayout". Parámetros dwLayout, entero
.DLL comando GetKeyboardLayoutList, entero, "GetKeyboardLayoutList" Parámetro nBuff, entero. Parámetro lpList, número entero, matriz
.Comando DLL ImmGetDescriptionA, número entero, "imm32.dll", "ImmGetDescriptionA". Parámetro hkl, número entero lpsz, tipo de texto. p>.DLL comando ActivateKeyboardLayout, entero, "ActivateKeyboardLayout". Parámetro hkl, número entero.
Indicadores de parámetros, entero
Comando .DLL GetCurrentProcessId, entero, "kernel32", "GetCurrentThreadId".