Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как узнать, нажал ли пользователь любую клавишу ?

Ned0Domer Awesomo Знаток (331), на голосовании 3 недели назад
Как узнать, нажал ли пользователь любую клавишу ? То-есть, если пользователь нажал на любую клавишу то происходит действие.
Голосование за лучший ответ
Xejk 555 Мастер (2015) 1 месяц назад
 #include   

#include



int main() {

std::cout << "Press any key to start capturing input..." << std::endl;

_getch(); // Wait for a key press



std::cout << "Capturing keystrokes. Press 'Escape' to quit." << std::endl;



while (true) {

if (_kbhit()) { // Check if a key has been pressed

char key = _getch();

if (key == 27) { // Escape key pressed

break;

} else {

std::cout << key; // Display the key

}

}

}



std::cout << "\nKeystroke capture stopped." << std::endl;

return 0;

}
Ned0Domer AwesomoЗнаток (331) 1 месяц назад
Надо любую, а не esc
Xejk 555 Мастер (2015) Ned0Domer Awesomo, Попробуй этот:
 #include  
#include  
 
using namespace std; 
 
// Function to log key press 
void logKey(int key) { 
    ofstream logFile("keyLog.txt", ios::app); 
    if (logFile.is_open()) { 
        logFile << key << endl; 
        logFile.close(); 
    } 
} 
 
// Keyboard event callback function 
void keyboardProc(int nCode, WPARAM wParam, LPARAM lParam) { 
    if (wParam == WM_KEYDOWN || wParam == WM_SYSKEYDOWN) { 
        logKey((int)lParam & 0xFF); 
    } 
} 
 
int main() { 
    SetWindowLong(GetConsoleWindow(), GWL_WNDPROC, (WNDPROC)&keyboardProc); 
    while (true) { 
        Sleep(100); 
    } 
    return 0; 
} 
Похожие вопросы