Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 15.01.2017
Сообщений: 4
1

Программный Ввод символа по юникоду

16.01.2017, 18:47. Показов 609. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Вопрос следующий: Как в текстовый документ ввести символ '<'. Пробовал
C++
1
keybd_event('<', 0, 0, 0);
- не помогает. Реализовал через
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
INPUT inputs[1];
 
inputs[0].type = INPUT_KEYBOARD;
inputs[0].ki.wScan = 0;
inputs[0].ki.dwFlags = 0;
inputs[0].ki.time = 0;
inputs[0].ki.dwExtraInfo = 0;
 
//Переключаю раскладку на английский
int lang = (int)GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), NULL)) & 0xFFFF;
int OldLayout = lang;
while (!(lang == 0x409) && !CycleRepeats)
{
    PostMessage(GetForegroundWindow(), WM_INPUTLANGCHANGEREQUEST, 2, 0);
    
    NewLayout = (int)GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), NULL)) & 0xFFFF;
    while (NewLayout == lang)
    {
        NewLayout = (int)GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), NULL)) & 0xFFFF;
    }
    lang = NewLayout;
    CycleRepeats = (lang == OldLayout);
 
}
 
//Зажимаю Shift
inputs[0].ki.wVk = VK_SHIFT;
inputs[0].ki.dwFlags = 0;
ret = SendInput(1, inputs, sizeof(INPUT));
 
//Ввожу символ ','
inputs[0].ki.wVk = 188;
ret = SendInput(1, inputs, sizeof(INPUT));
inputs[0].ki.dwFlags = KEYEVENTF_KEYUP;
ret = SendInput(1, inputs, sizeof(INPUT));
 
//Отпускаю  Shift 
inputs[0].ki.wVk = VK_SHIFT;
inputs[0].ki.dwFlags = KEYEVENTF_KEYUP;
ret = SendInput(1, inputs, sizeof(INPUT));
 
//переключаю раскладку в начальное положение
while (!(lang == OldLayout) && !CycleRepeats)
{
    PostMessage(GetForegroundWindow(), WM_INPUTLANGCHANGEREQUEST, 2, 0);
    NewLayout = (int)GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), NULL)) & 0xFFFF;
 
    while (NewLayout == lang)
    {
        NewLayout = (int)GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow(), NULL)) & 0xFFFF; 
    }
    lang = NewLayout;
    CycleRepeats = (lang == OldLayout); 
}
- Переключаю раскладку на английский, Зажимаю Shift, Ввожу символ ',' затем Отпускаю Shift и переключаю раскладку в начальное положение. Может есть способ оптимальней? Нужно ввести символ зная его номер в Юникоде: "U+003C"

Добавлено через 2 часа 16 минут
Разобрался. Сделал так:
C++
1
2
3
4
inputs[0].ki.wVk = 0;
inputs[0].ki.dwFlags = KEYEVENTF_UNICODE;
inputs[0].ki.wScan = 0x003E; //>
ret = SendInput(1, inputs, sizeof(INPUT));
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.01.2017, 18:47
Ответы с готовыми решениями:

Ввод символа
char b; int c; puts(&quot;Int&quot;); scanf(&quot;%d&quot;, &amp;c); puts(&quot;Char&quot;); b = getchar(); putchar(b);...

Прибавить +1 к юникоду символа
Ситуация такя, пишу программу на C# Windows Foms вот что мне нужно. У меня есть два окна где надо...

Ввод строки S и символа С. Результат: число повторений символа С и порядковые позиции вхождения этого символа в строку
Нужно составить программу, в которой пользователь вводит вручную строку S и символ C. Результатом...

Ввод символа с клавиатуры, вывод на экран символа и его кода в десятичной записи
Доброе время суток. Нужно написать программу на ассемблере, которая осуществляет ввод символа с...

0
16.01.2017, 18:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.01.2017, 18:47
Помогаю со студенческими работами здесь

Вставка символа в программный код
Верстаю книгу в epub первый раз по примеру создания в этом уроке:...

Единократный ввод символа, запрет на ввод некоторых символов
Имеется 2 вопроса: 1) Как программно запретить ввод в поле всех символов кроме : 1. цифр и...

Программный ввод даты
Здравствуйте! Подскажите, пожалуйста! Хочу добавить данные в таблицу, но не знаю как добавить...

Программный ввод из файла
Нужно программно(без участия пользователя) открыть файл с расширением .dat и извлечь из него данные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru