我对 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();
}
用于收集密钥 Hex 以根据BIntVector.push_back(key);
是否满足其他条件在代码中稍后输入到发送密钥语句中,这就是开头为 0 和 1 的原因。字符串值仅用于将内容打印到屏幕上。
现在我在网上发现这段代码可以做到SendInput()
,当键值存储为 int 时,它似乎工作正常,但是当我尝试从文本文件中获取 Hex 值时,程序崩溃,因为它无法将其存储为诠释。但是,如果值不是 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));
}
任何帮助都会很棒,谢谢。