Я довольно новичок в c ++ и думаю, может ли кто-нибудь помочь с проектом, над которым я работаю.
В моем коде на данный момент я собираю информацию из файла, который содержит информацию для программы, а затем ключ для отправки, когда критерии этой информации верны.
Чтобы дать представление, вот как выглядит мой файл:
0 0 1 0 235 10 0x21 PG_UP name1
1 0 1 0 260 10 0x22 PG_DN name2
2 0 1 1 235 55 0x23 END name3
3 1 1 1 10 10 0x51 Q name 4
4 1 1 1 35 10 0x57 W name 5
Поскольку длина списка не всегда одинакова, мой код использует это для сбора информации в память
string pkey, spell;
int entnum, state, movable, gcd, coordx, coordy, key;
while(WorkingFile >> entnum >> state >> movable >> gcd >> coordx >> coordy >> key >> pkey >> spell)
{
BIntVector.push_back(entnum);
BIntVector.push_back(state);
BIntVector.push_back(movable);
BIntVector.push_back(gcd);
BIntVector.push_back(coordx);
BIntVector.push_back(coordy);
BIntVector.push_back(key);
AIntVector.push_back(BIntVector);
BIntVector.clear();
BStringVector.push_back(pkey);
BStringVector.push_back(spell);
AStringVector.push_back(BStringVector);
BStringVector.clear();
}
BIntVector.push_back(key);
используется для сбора шестнадцатеричного ключа для последующего ввода в оператор отправки ключа в коде в зависимости от того, выполнены ли другие критерии, что является причиной появления нулей и единиц в начале. Строковые значения просто используются, чтобы распечатать вещи на экране.
Теперь я нашел этот код в Интернете, чтобы иметь возможность сделать SendInput()
Кажется, он работает нормально, когда значение ключа хранится как int, но когда я пытаюсь взять значение Hex из текстового файла, программа вылетает, так как не может сохранить его как int. Однако мой код ниже не будет компилироваться, если значение будет отличным от int.
Я не сделал этот код ниже для отправки ввода, поэтому я не уверен, почему он не работает или как его обойти.
Может быть, это что-то простое, но я понятия не имею, что происходит внутри sendkey ()
int k = 0;
k = AIntVector[0][6];
int sendkey()
{
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = 0;
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0;
ip.ki.wVk = k;
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
}
Любая помощь будет замечательной, спасибо.
Задача ещё не решена.