feat: keyboard modes

This commit is contained in:
str1k3r committed 2026-10-20 00:57:38 -04:00
1 parent 69d6a51ad5
commit f7f0619c39
3 files changed
+37 -2

No files matched your search

+34 -1
View File
@@ -39,11 +39,44 @@ C_4JInput::EKeyboardResult CKeyboard::RequestKeyboard(LPCWSTR uiTitle, LPCWSTR u
}
}
switch (eMode)
{
//str1k3r - look at xam.h for the modes
case C_4JInput::EKeyboardMode_Numeric:
keyboardMode = VKBD_LATIN_NUMERIC;
break;
case C_4JInput::EKeyboardMode_Password:
keyboardMode = VKBD_LATIN_PASSWORD;
break;
//str1k3r - Alphabet and Full need multi lang support
case C_4JInput::EKeyboardMode_Alphabet:
keyboardMode = VKBD_LATIN_ALPHABET;
break;
case C_4JInput::EKeyboardMode_Full:
keyboardMode = VKBD_LATIN_FULL;
break;
case C_4JInput::EKeyboardMode_Alphabet_Extended:
keyboardMode = VKBD_LATIN_EXTENDED;
break;
case C_4JInput::EKeyboardMode_IP_Address:
keyboardMode = VKBD_LATIN_IP_ADDRESS;
break;
case C_4JInput::EKeyboardMode_Phone:
keyboardMode = VKBD_LATIN_PHONE;
break;
case C_4JInput::EKeyboardMode_Email:
keyboardMode = VKBD_LATIN_EMAIL;
break;
default:
keyboardMode = VKBD_DEFAULT;
break;
}
ZeroMemory(&KeyboardOverlap, sizeof(XOVERLAPPED));
for (;;)
{
DWORD result = XShowKeyboardUI(LockedProfile, 0, uiText, uiTitle, uiDesc, this->pwchResult, this->uiMaxChars, &KeyboardOverlap);
DWORD result = XShowKeyboardUI(LockedProfile, keyboardMode, uiText, uiTitle, uiDesc, this->pwchResult, this->uiMaxChars, &KeyboardOverlap);
if (result == ERROR_IO_PENDING)
break;
if (result != ERROR_ACCESS_DENIED)
+1
View File
@@ -8,6 +8,7 @@ private:
C_4JInput::EKeyboardResult eState;
int iPad;
int keyboardMode;
UINT uiMaxChars;
WCHAR *pwchResult;
bool bActive;