今日、私は単純なキーロガー アプリケーションを構築しています (いいえいいえ - あなたが考えていることではありません...)。私は GetAsyncKeyState を使用しています (SetWindowsHookEx を使用する必要があることはわかっていますが、これに関する優れたチュートリアルはあまりなく、WinApi を吸っています)、自動起動時にプログラムを開始する際に問題があります。私はそれを適切なレジストリに追加していますが、すべてが機能します (プログラムは起動時に開始します) が、GetAsyncKeyState はキーを読み取ることができません (手動で開始すると機能します)。短縮コード:
HWND Stealth;
if(!AllocConsole()){
Sleep(1000*5);
}
while((Stealth = FindWindowA("ConsoleWindowClass", NULL))==NULL){
Sleep(1000*5);
}
//ShowWindow(Stealth,0);
char i;
while (keylogger->working){
for(i = 8; i <= 190; i++){
if (GetAsyncKeyState(i) == -32767){
cout << i << endl; // No output here
}}}
このような動作が存在する理由と、それを回避する方法は? Windowsの起動初期段階でコンソールを割り当てることと関係がありますか?