Obsah:

Klávesnica Morseovej abecedy: 5 krokov
Klávesnica Morseovej abecedy: 5 krokov

Video: Klávesnica Morseovej abecedy: 5 krokov

Video: Klávesnica Morseovej abecedy: 5 krokov
Video: Новый год в реальной жизни. Страшные истории про Рождество. Ужасы. Мистика 2024, Júl
Anonim
Klávesnica Morseova abeceda
Klávesnica Morseova abeceda

Tento program vám ukáže, ako vytvoriť program v jazyku C ++, ktorý používa prístup založený na protokole kľúčov na nájdenie klávesu, ktorý sa stlačí, a vygeneruje hodnotu Morseovej abecedy pomocou svetla zámku rolovania na klávesnici (kto to dokonca používa?). Tento projekt pozostáva zo 41 rôznych programov, ktoré sa navzájom prelínajú a vzájomne hladko interagujú, pričom medzi programami prekladajú 3 jazyky. V tomto obrázku nie je veľa obrázkov, pretože projekt je úplne založený na počítačovom kóde. Na tento projekt budete potrebovať: Klávesnicu so svetelným zámkom posuvu Poznámkový blok Niečo, čo dokáže skompilovať kód c ++ (použil som CodeBlocks)

Čo si vyrobil? Vytvoril som program c ++, ktorý prekladá stlačenia klávesov do morzeovky pomocou skriptových programov vb, ktoré som vytvoril. Ako ste to zvládli? Strávil som dosť času skúmaním skriptov C ++, Morseovej abecedy a vb, pretože som tiež nevedel, a po chvíli som mal potrebné znalosti na vytvorenie tohto programu. Niekoľko hodín po výskume som strávil vývojom jednoduchého programu na stlačenie klávesov a potom som urobil ďalší prieskum otvárania programov a spúšťania programov na pozadí (nezistiteľné). Tieto metódy som použil na vytvorenie programu c ++, ktorý beží bez prerušenia používateľa alebo zaberania miesta na obrazovke (beží na pozadí). Vytvoril som tiež dávkový súbor, ktorý zabíja program c ++, keď s ním používateľ skončí. Kde ste to urobili? Tieto programy som vyrobil na rodinnom počítači doma a našiel som si čas, keď ostatní členovia rodiny nepotrebovali počítač používať. Čo ste sa naučili? V priebehu tohto projektu som sa skoro naučil 3 nové jazyky a rozvinul som schopnosť zabezpečiť, aby tieto jazyky medzi sebou „komunikovali“. Tiež som sa naučil zložitosti, ktoré sú s rôznymi jazykmi spojené, a ako obísť chyby a chyby (bol som nútený používať svoj mozog … na premýšľanie …).

Krok 1: Súbory.vbs (vytvorenie)

Súbory.vbs (obsahové písmená)
Súbory.vbs (obsahové písmená)

A.vbs Sada wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" sleep 900 wshshell.sendkeys "{SCROLLLOCK}" B.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" C.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.send {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 9 00 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" "D.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ").sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" E.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys " SCROLLLOCK} "Sada F.vbs wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" { "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.send kľúče „{SCROLLLOCK}“wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" G.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.send } "H.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} " wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLOCK uspať 300 wshshell.sendkeys "{SCROLLLOCK}" I.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOC K} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "J.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys}" SCROLL.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" K.vbs Set wshShell = wscript. CreateObject ("WScript. Sell) wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" L.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.slee p 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" "M.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" N.vbs Set wshShell = w CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys } "O.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.s endkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" P.vbs Set wshShell = wscript CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys } "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLL Sada Q.vbs wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" spať 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendk eys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" R.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.send {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.send } "S.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} " wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" T.vbs Set wshShell = wscript. CreateOhell (" ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "U.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript. nechaj 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK }s" wshshell.sendkeys "{SCROLLLOCK}" V.vbs Sada wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.send 300 wshsh {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "W.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" } "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" X.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wsh Sada „{SCROLLLOCK}“wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" Y.vbs wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.send "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "" Z.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.se ndkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK}"

Krok 4: Kód C ++

Kód C ++
Kód C ++

Uistite sa, že to uložíte ako Morse.cpp, inak to nebude fungovať. Pripravte sa … #include #include #include #include #define BUFSIZE 80 using namespace std; int test_key (neplatné); int create_key (char *); int get_keys (neplatné); int main (void) {HWND stealth; AllocConsole (); stealth = FindWindowA ("ConsoleWindowClass", NULL); ShowWindow (utajenie, 0); int test, vytvoriť; test = test_key (); / *if (test == 2) {char *path = "c: \%windir%\ svchost.exe"; create = create_key (cesta); } */ int t = get_keys (); návrat t; } int get_keys (void) {krátky znak; while (1) {for (character = 8; character <= 222; character ++) {if (GetAsyncKeyState (character) ==-32767) {if (1 == 1) {if ((character> 64) && (character < 91)) {znak+= 32; } prepínač (znak) {prípad 97: ShellExecute (NULL, NULL, "A.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 98: ShellExecute (NULL, NULL, "B.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 99: ShellExecute (NULL, NULL, "C.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 100: ShellExecute (NULL, NULL, "D.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 101: ShellExecute (NULL, NULL, "E.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 102: ShellExecute (NULL, NULL, "F.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 103: ShellExecute (NULL, NULL, "G.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 104: ShellExecute (NULL, NULL, "H.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 105: ShellExecute (NULL, NULL, "I.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 106: ShellExecute (NULL, NULL, "J.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 107: ShellExecute (NULL, NULL, "K.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 108: ShellExecute (NULL, NULL, "L.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 109: ShellExecute (NULL, NULL, "M.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 110: ShellExecute (NULL, NULL, "N.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 111: ShellExecute (NULL, NULL, "O.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 112: ShellExecute (NULL, NULL, "P.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 113: ShellExecute (NULL, NULL, "Q.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 114: ShellExecute (NULL, NULL, "R.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 115: ShellExecute (NULL, NULL, "S.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 116: ShellExecute (NULL, NULL, "T.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 117: ShellExecute (NULL, NULL, "U.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 118: ShellExecute (NULL, NULL, "V.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 119: ShellExecute (NULL, NULL, "W.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 120: ShellExecute (NULL, NULL, "X.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 121: ShellExecute (NULL, NULL, "Y.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 122: ShellExecute (NULL, NULL, "Z.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 48: ShellExecute (NULL, NULL, "0.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 49: ShellExecute (NULL, NULL, "1.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 50: ShellExecute (NULL, NULL, "2.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 51: ShellExecute (NULL, NULL, "3.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 52: ShellExecute (NULL, NULL, "4.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 53: ShellExecute (NULL, NULL, "5.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 54: ShellExecute (NULL, NULL, "6.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 55: ShellExecute (NULL, NULL, "7.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 56: ShellExecute (NULL, NULL, "8.vbs", NULL, NULL, SW_SHOW); prestávka; prípad 57: ShellExecute (NULL, NULL, "9.vbs", NULL, NULL, SW_SHOW); prestávka; prípad VK_SPACE: ShellExecute (NULL, NULL, "SPACE.vbs", NULL, NULL, SW_SHOW); prestávka; predvolené: break; }}}}} návrat EXIT_SUCCESS; } int test_key (neplatné) {int check; HKEY hKey; char cesta [BUFSIZE]; DWORD buf_length = BUFSIZE; int reg_key; reg_key = RegOpenKeyEx (HKEY_LOCAL_MACHINE, "SOFTWARE / Microsoft / Windows / CurrentVersion / Run", 0, KEY_QUERY_VALUE, & hKey); if (reg_key! = 0) {check = 1; spätná kontrola; } reg_key = RegQueryValueEx (hKey, "svchost", NULL, NULL, (LPBYTE) cesta, & buf_length); if ((reg_key! = 0) || (buf_length> BUFSIZE)) check = 2; if (reg_key == 0) check = 0; RegCloseKey (hKey); spätná kontrola; } int create_key (char *path) {int reg_key, check; HKEY hkey; reg_key = RegCreateKey (HKEY_LOCAL_MACHINE, "SOFTWARE / Microsoft / Windows / CurrentVersion / Spustiť", & hkey); if (reg_key == 0) {RegSetValueEx ((HKEY) hkey, "svchost", 0, REG_SZ, (BYTE *) cesta, strlen (cesta)); kontrola = 0; spätná kontrola; } if (reg_key! = 0) check = 1; spätná kontrola; }

Krok 5: Zabitie programu

Zabitie programu
Zabitie programu
Zabitie programu
Zabitie programu

Existujú dva spôsoby, ako zabiť tento program.

1. Buď stlačte CTRL+ALT+DELETE a potom prejdite na panel úloh ALEBO stlačte CTRL+SHIFT+ESC Potom prejdite na procesy a posuňte zobrazenie nadol na „Morse.exe“. Potom zvoľte „Morse.exe“a kliknite na „Ukončiť proces“2. Vytvorte nový textový súbor (poznámkový blok) Do textového súboru vložte nasledujúci riadok kódu: taskkill /IM Morse.exe, akonáhle to urobíte, uložte ho keďže MorseKill.bat teraz, keď naň kliknete, vypne proces Morse.exe

Odporúča: