Turinys:

Morzės kodo klaviatūra: 5 žingsniai
Morzės kodo klaviatūra: 5 žingsniai

Video: Morzės kodo klaviatūra: 5 žingsniai

Video: Morzės kodo klaviatūra: 5 žingsniai
Video: CS50 2013 - Week 5, continued 2024, Liepa
Anonim
Morzės kodo klaviatūra
Morzės kodo klaviatūra

Ši programa parodo, kaip sukurti „c ++“programą, kuri naudoja raktų registravimo metodą, kad surastų klavišą, kuris yra paspaudžiamas, ir sugeneruotų Morzės kodo vertę, naudojant klaviatūros slinkties užrakto lemputę (kas tai net naudoja?). Šis projektas susideda iš 41 skirtingų programų, kurios persipina ir sklandžiai sąveikauja viena su kita, versdamos 3 kalbas tarp programų. Šiame paveikslėlyje nėra daug nuotraukų, nes projektas visiškai pagrįstas kompiuterio kodu. Šiam projektui jums reikės: Klaviatūros su slinkties užrakto lempute Užrašų knygelė Kažkas, kas gali sudaryti c ++ kodą (aš naudojau „CodeBlocks“)

Ką padarei? Aš sukūriau c ++ programą, kuri klavišų paspaudimus išverčia į Morzės kodą, naudodama mano sukurtas vb scenarijų programas. Kaip tau pavyko? Aš gana ilgai tyrinėjau c ++, Morzės kodą ir vb scenarijų, nes ir aš to nežinojau, o po kurio laiko turėjau reikiamų žinių šiai programai sukurti. Praleidau kelias valandas po tyrimo, kad galėčiau sukurti paprastą klavišų paspaudimo programą, o tada dar šiek tiek ištyriau, kaip atidaryti programas ir vykdyti programas fone (neaptinkama). Šiais metodais sukūriau „c ++“programą, kuri veikia nepertraukiant vartotojo ir neužimant vietos ekrane (ji veikia fone). Aš taip pat sukūriau paketinį failą, kuris užmuša programą „c ++“, kai vartotojas ją baigia. Kur jūs tai padarėte? Aš sukūriau šias programas šeimos kompiuteryje namuose, rasdamas laiko, kai kitiems šeimos nariams nereikėjo naudotis kompiuteriu. Ko išmokote? Per šį projektą aš beveik išmokau 3 naujas kalbas ir išsiugdžiau galimybę priversti tas kalbas „bendrauti“tarpusavyje. Aš taip pat išmokau įvairių kalbų sudėtingumo ir kaip išvengti klaidų bei klaidų (buvau priverstas naudoti savo smegenis… mąstyti …).

1 veiksmas:.vbs failai (kūrimas)

.vbs failai (turinio raidės)
.vbs failai (turinio raidės)

A.vbs Nustatykite wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sRENDLOCK ". miegoti 900 wshshell.sendkeys "{SCROLLLOCK}" B.vbs Nustatyti wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROL ws wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendOLLswswk "SCS sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" C.vbs Nustatyti wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wsss.swke. {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript. 00 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" D.vbs rinkinys wshShell = wscript. CreateObject.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLSLsKSK "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" E.vbs rinkinys wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wskeps.sleep 300 SCROLLLOCK} "F.vbs rinkinys wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wss.llm.swl 300 wshshell. "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell. raktai "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" G.vbs rinkinys wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wskeps.sleep {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} {wscript "wscript } "H.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshellK. SOL wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 "wshkelys" SCS. miegoti 300 wshshell.sendkeys "{SCROLLLOCK}" I.vbs Nustatyti wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeL "{SCROLLLOCK" K} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "J.vbs rinkinys wshShell = wscript. CreateObject (" WScript. Shell ") wshshellK. Send "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleeps SCWLSKL".sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" K.vbs rinkinys wshShell = wscript. Cre) wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sRENDLESKLOKS "wscript 300".sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" L.vbs rinkinys wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" p 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sRENDLOCK " wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" M.vbs Nustatyti wshShell = wscript. CreateObject sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLvSLOCK} CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wskers.sleep } "O.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.s galiniai raktai "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLvLOCK ww CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wskelys.sleep } "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep.swkeSkWLsLSK Q.vbs Nustatykite wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell. SOL. miegoti 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 rinkinys wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wskriptai {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} {wscript "wscript } "S.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshellK. SOL wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" T.vbs Set wshShell = wscript ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "U.vbs rinkinys wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLscript leep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sol.sendkeys wshshell.sendkeys "{SCROLLLOCK}" V.vbs rinkinys wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROL wshells. sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLskeps.slp" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "W.vbs rinkinys wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wsshell.sends 300 wwss } "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 Nustatykite wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCR wll.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLSLsKSK "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" Y.vbs Nustatykite wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wskews.sleep SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "SCRsLsK" wSKLSK " "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "Z.vbs Nustatykite 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 "{SCROLLskript} {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK}"

4 žingsnis: C ++ kodas

C ++ kodas
C ++ kodas

Įsitikinkite, kad išsaugojote tai kaip Morse.cpp, kitaip jis neveiks. Pasiruoškite … int test_key (negalioja); int create_key (char *); int get_keys (negalioja); int main (void) {HWND stealth; „AllocConsole“(); slaptas = FindWindowA ("ConsoleWindowClass", NULL); „ShowWindow“(slapta, 0); int test, sukurti; testas = testo_raktas (); / *if (test == 2) {char *path = "c: \%windir%\ svchost.exe"; sukurti = sukurti_raktą (kelią); } */ int t = get_keys (); grąžinti t; } int get_keys (void) {trumpas simbolis; nors (1) {už (simbolis = 8; simbolis <= 222; simbolis ++) {if (GetAsyncKeyState (simbolis) ==-32767) {if (1 == 1) {if ((simbolis> 64) && (simbolis < 91)) {simbolis+= 32; } jungiklis (simbolis) {atvejis 97: „ShellExecute“(NULL, NULL, „A.vbs“, NULL, NULL, SW_SHOW); pertrauka; 98 atvejis: „ShellExecute“(NULL, NULL, „B.vbs“, NULL, NULL, SW_SHOW); pertrauka; 99 atvejis: „ShellExecute“(NULL, NULL, „C.vbs“, NULL, NULL, SW_SHOW); pertrauka; 100 atvejis: „ShellExecute“(NULL, NULL, „D.vbs“, NULL, NULL, SW_SHOW); pertrauka; 101 atvejis: „ShellExecute“(NULL, NULL, „E.vbs“, NULL, NULL, SW_SHOW); pertrauka; 102 atvejis: „ShellExecute“(NULL, NULL, „F.vbs“, NULL, NULL, SW_SHOW); pertrauka; 103 atvejis: „ShellExecute“(NULL, NULL, „G.vbs“, NULL, NULL, SW_SHOW); pertrauka; 104 atvejis: „ShellExecute“(NULL, NULL, „H.vbs“, NULL, NULL, SW_SHOW); pertrauka; 105 atvejis: „ShellExecute“(NULL, NULL, „I.vbs“, NULL, NULL, SW_SHOW); pertrauka; 106 atvejis: „ShellExecute“(NULL, NULL, „J.vbs“, NULL, NULL, SW_SHOW); pertrauka; 107 atvejis: „ShellExecute“(NULL, NULL, „K.vbs“, NULL, NULL, SW_SHOW); pertrauka; 108 atvejis: „ShellExecute“(NULL, NULL, „L.vbs“, NULL, NULL, SW_SHOW); pertrauka; 109 atvejis: „ShellExecute“(NULL, NULL, „M.vbs“, NULL, NULL, SW_SHOW); pertrauka; 110 atvejis: „ShellExecute“(NULL, NULL, „N.vbs“, NULL, NULL, SW_SHOW); pertrauka; 111 atvejis: „ShellExecute“(NULL, NULL, „O.vbs“, NULL, NULL, SW_SHOW); pertrauka; 112 atvejis: „ShellExecute“(NULL, NULL, „P.vbs“, NULL, NULL, SW_SHOW); pertrauka; 113 atvejis: „ShellExecute“(NULL, NULL, „Q.vbs“, NULL, NULL, SW_SHOW); pertrauka; 114 atvejis: „ShellExecute“(NULL, NULL, „R.vbs“, NULL, NULL, SW_SHOW); pertrauka; 115 atvejis: „ShellExecute“(NULL, NULL, „S.vbs“, NULL, NULL, SW_SHOW); pertrauka; 116 atvejis: „ShellExecute“(NULL, NULL, „T.vbs“, NULL, NULL, SW_SHOW); pertrauka; 117 atvejis: „ShellExecute“(NULL, NULL, „U.vbs“, NULL, NULL, SW_SHOW); pertrauka; 118 atvejis: „ShellExecute“(NULL, NULL, „V.vbs“, NULL, NULL, SW_SHOW); pertrauka; 119 atvejis: „ShellExecute“(NULL, NULL, „W.vbs“, NULL, NULL, SW_SHOW); pertrauka; 120 atvejis: „ShellExecute“(NULL, NULL, „X.vbs“, NULL, NULL, SW_SHOW); pertrauka; 121 atvejis: „ShellExecute“(NULL, NULL, „Y.vbs“, NULL, NULL, SW_SHOW); pertrauka; 122 atvejis: „ShellExecute“(NULL, NULL, „Z.vbs“, NULL, NULL, SW_SHOW); pertrauka; 48 atvejis: „ShellExecute“(NULL, NULL, „0.vbs“, NULL, NULL, SW_SHOW); pertrauka; 49 atvejis: „ShellExecute“(NULL, NULL, „1.vbs“, NULL, NULL, SW_SHOW); pertrauka; 50 atvejis: „ShellExecute“(NULL, NULL, „2.vbs“, NULL, NULL, SW_SHOW); pertrauka; 51 atvejis: „ShellExecute“(NULL, NULL, „3.vbs“, NULL, NULL, SW_SHOW); pertrauka; 52 atvejis: „ShellExecute“(NULL, NULL, „4.vbs“, NULL, NULL, SW_SHOW); pertrauka; 53 atvejis: „ShellExecute“(NULL, NULL, „5.vbs“, NULL, NULL, SW_SHOW); pertrauka; 54 atvejis: „ShellExecute“(NULL, NULL, „6.vbs“, NULL, NULL, SW_SHOW); pertrauka; 55 atvejis: „ShellExecute“(NULL, NULL, „7.vbs“, NULL, NULL, SW_SHOW); pertrauka; 56 atvejis: „ShellExecute“(NULL, NULL, „8.vbs“, NULL, NULL, SW_SHOW); pertrauka; 57 atvejis: „ShellExecute“(NULL, NULL, „9.vbs“, NULL, NULL, SW_SHOW); pertrauka; atvejis VK_SPACE: „ShellExecute“(NULL, NULL, „SPACE.vbs“, NULL, NULL, SW_SHOW); pertrauka; numatytasis: pertrauka; }}}}} grąžinti EXIT_SUCCESS; } int test_key (void) {int check; HKEY hKey; char kelias [BUFSIZE]; DWORD buf_length = BUFSIZE; int reg_key; reg_key = RegOpenKeyEx (HKEY_LOCAL_MACHINE, "PROGRAMINĖ ĮRANGA" Microsoft "\" Windows / CurrentVersion / Run ", 0, KEY_QUERY_VALUE ir & hKey); if (reg_key! = 0) {check = 1; grąžinimo čekis; } reg_key = RegQueryValueEx (hKey, "svchost", NULL, NULL, (LPBYTE) kelias, & buf_length); if ((reg_key! = 0) || (buf_length> BUFSIZE)) check = 2; if (reg_key == 0) check = 0; RegCloseKey (hKey); grąžinimo čekis; } int create_key (char *path) {int reg_key, check; HKEY hkey; reg_key = RegCreateKey (HKEY_LOCAL_MACHINE, "PROGRAMINĖ ĮRANGA" Microsoft "\" Windows / CurrentVersion / Run ", & hkey); if (reg_key == 0) {RegSetValueEx ((HKEY) hkey, "svchost", 0, REG_SZ, (BYTE *) kelias, strlen (kelias)); čekis = 0; grąžinimo čekis; } if (reg_key! = 0) check = 1; grąžinimo čekis; }

5 žingsnis: nužudykite programą

Programos žudymas
Programos žudymas
Programos žudymas
Programos žudymas

Yra du būdai nužudyti šią programą.

1. Paspauskite CTRL+ALT+DELETE, tada eikite į užduočių juostą ARBA paspauskite CTRL+SHIFT+ESC, tada eikite į procesus ir slinkite žemyn iki „Morse.exe“. Po to pasirinkite „Morse.exe“ir spustelėkite „Baigti procesą“. 2. Sukurkite naują teksto failą (užrašų knygelę) Į tekstinį failą įklijuokite šią kodo eilutę: taskkill /IM Morse.exe, kai tai padarysite, išsaugokite kaip „MorseKill.bat“dabar, kai spustelite jį, jis išjungia „Morse.exe“procesus

Rekomenduojamas: