Не работает автоматический ввод. c++

193
11 апреля 2018, 09:02

Есть функция:

void GenerateKey(int vk, BOOL bExtended) {
KEYBDINPUT  kb = {0};
INPUT       Input = {0};
if (bExtended) { kb.dwFlags  = KEYEVENTF_EXTENDEDKEY; }
kb.wVk  = vk;
Input.type  = INPUT_KEYBOARD;
Input.ki  = kb;
SendInput(1, &Input, sizeof(Input));
ZeroMemory(&kb, sizeof(KEYBDINPUT));
ZeroMemory(&Input, sizeof(INPUT));
kb.dwFlags  =  KEYEVENTF_KEYUP;
if (bExtended) { kb.dwFlags |= KEYEVENTF_EXTENDEDKEY; }
kb.wVk = vk;
Input.type = INPUT_KEYBOARD;
Input.ki = kb;
SendInput(1, &Input, sizeof(Input));
return;
}

При вводе обычных букв/цифр всё работает отлично.
Если на вход идут другие символы, то они не эмулируются. Как исправить?
Input:

VARIABLE TN  
VARIABLE TID  
VARIABLE TNN  
VARIABLE TS  
VARIABLE TO  
: TAKE  
TID ! TN !  
TN @ 0 < IF ." NUM < 0" -1 TO ! EXIT THEN  
TID @ COUNTITEM CIO @ TN @ < IF ." IN CHEST TOO FEW ITEMS!" -2 TO ! EXIT THEN
SORTSLOTS 1 - 0  
DO  
IF  
THEN 
LOOP  

Output: VARIABLE TN VARIABLE TID VARIABLE TNN VARIABLE TS VARIABLE TO TAKE TID TN TN 0 IF NUM 0 1 TO EXIT THEN TID COUNTITEM CIO TN IF IN CHEST TOO FEW ITEMS 2 TO EXIT THEN SORTSLOTS 1 0 DO IF THEN LOOP

READ ALSO
конвертор из std::string в QString

конвертор из std::string в QString

есть функция, возвращающая string а её результат нужно внести в QListWidget который принимает на вход QSringListна обычный оператор = между string и QString компилятор...

206
На работает getline

На работает getline

getline срабатывает только на первой итерацииВсе осталные пропускается

246
Как работает noexcept в c++?

Как работает noexcept в c++?

Что делает спецификация noexcept? Я думал, что она не позволит функции кинуть исключение, но это не так, функция:

179