Как сравнить восьмеричную цифру
У меня есть: GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), NULL)) вывод у неё типа: 04090409или 04190419 какой тип мне выбрать для этих цифр? сравнить с помощью if не получается.
немного начального кода
#include <windows.h>
#include <fstream>
using namespace std;
int APIENTRY wWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPWSTR lpCmdLine,
int nCmdShow)
{
HKL layout = GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), NULL));
ofstream fout;
fout.open("file.txt", ios::app);
fout << layout << endl;
fout.close();
}
//ID раскладок
//ENG = 04090409
//RU == 04190419
Ответы (1 шт):
Вообще-то HKL - это void*, и при выводе выводится в 16-ричном формате. А содержит он
The return value is the input locale identifier for the thread. The low word contains a Language Identifier for the input language and the high word contains a device handle to the physical layout of the keyboard.
Вы можете использовать стандартные макросы LOWORD и HIWORD для получения младшего слова и старшего соответственно. И сравнивать то, что там уж вам надо, и как надо...