Sadržaj:
Video: Morzeova tipkovnica: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Ovaj vam program pokazuje kako stvoriti c ++ program koji koristi pristup zapisivanja ključeva kako bi pronašao tipku koja se pritisne i generirao vrijednost Morzeovog koda pomoću svjetla za zaključavanje pomicanja na tipkovnici (tko to uopće koristi?). Ovaj se projekt sastoji od 41 različitog programa koji se isprepliću i međusobno neprimjetno komuniciraju, prevodeći 3 jezika između programa. U ovoj tablici nema mnogo slika jer se projekt u potpunosti temelji na računalnom kodu. Za ovaj projekt trebat će vam: Tipkovnica sa svjetlom za zaključavanje pomicanja Notepad Nešto što može sastaviti c ++ kôd (koristio sam CodeBlocks)
Što ste napravili? Napravio sam c ++ program koji prevodi pritiske tipki u Morseovu azbuku koristeći vb skriptne programe koje sam napravio. Kako vam je to uspjelo? Proveo sam dosta vremena istražujući c ++, Morseov kod i vb skriptu jer ni ja nisam znao, a nakon nekog vremena sam imao potrebno znanje za izradu ovog programa. Potrošio sam nekoliko sati nakon istraživanja na razvoj jednostavnog programa za pritiskanje tipki, a zatim sam još istražio otvaranje programa i pokretanje programa u pozadini (neotkriveno). Koristio sam ove metode za stvaranje c ++ programa koji radi bez prekida korisnika ili zauzimanja prostora na ekranu (radi u pozadini). Napravio sam i batch datoteku koja ubija program c ++ kada korisnik završi s tim. Gdje ste to uspjeli? Napravio sam ove programe na obiteljskom računalu kod kuće, pronalazeći vrijeme kada drugi članovi obitelji nisu morali koristiti računalo. Što ste naučili? Tijekom ovog projekta prilično sam naučio 3 nova jezika i razvio sposobnost da ti jezici međusobno „komuniciraju“. Također sam naučio složenosti koje dolaze s različitim jezicima i kako zaobići greške i greške (bio sam prisiljen upotrijebiti svoj mozak … za razmišljanje …).
Korak 1:.vbs datoteke (stvaranje)
A.vbs Postavi 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 Postavi wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLcript." sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" C.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshcript {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 Postavi 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.sl "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" E.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.send SCROLLLOCK} "F.vbs Postavi 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 ključevi "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" G.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.se {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 SCSLSkell } "H.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLL " wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "SCScript" spava 300 wshshell.sendkeys "{SCROLLLOCK}" I.vbs Postavi 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 Postavi wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys} {SCLC "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys".sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" K.vbs Postavi wshShell = wscript. CreateObject ("WSR) wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLScript".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}" wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" M.vbs Postavi 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 wshS. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshLhell } "O.vbs Postavi wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.s završni ključevi "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" P.vbs Set wshS. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshLhell } "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys Q.vbs Postavite wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" spava 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 Postavi wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.se {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell } "S.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLL " wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" T.vbs Postavi wshShell = wscript. CreateObject ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "U.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript leep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLcript wshshell.sendkeys "{SCROLLLOCK}" V.vbs Postavi wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.spl. sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "W.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.send } "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 Postavi wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.exe "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" Y.vbs Postavi wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.se SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshellse "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "Z.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.se ndključevi "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK}"
Korak 4: C ++ kôd
Spremite ovo kao Morse.cpp ili inače neće raditi. Pripremite se … #include #include #include #include #define BUFSIZE 80 upotrebom imenskog prostora std; int test_key (void); int create_key (char *); int get_keys (void); int main (void) {HWND stealth; AllocConsole (); stealth = FindWindowA ("ConsoleWindowClass", NULL); ShowWindow (stealth, 0); int test, stvoriti; test = test_ključ (); / *if (test == 2) {char *path = "c: \%windir%\ svchost.exe"; create = create_key (put); } */ int t = get_keys (); povrat t; } int get_keys (void) {kratki znak; while (1) {for (character = 8; character <= 222; character ++) {if (GetAsyncKeyState (karakter) ==-32767) {if (1 == 1) {if ((znak> 64) && (znak < 91)) {znak+= 32; } prekidač (znak) {slučaj 97: ShellExecute (NULL, NULL, "A.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 98: ShellExecute (NULL, NULL, "B.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 99: ShellExecute (NULL, NULL, "C.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 100: ShellExecute (NULL, NULL, "D.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 101: ShellExecute (NULL, NULL, "E.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 102: ShellExecute (NULL, NULL, "F.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 103: ShellExecute (NULL, NULL, "G.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 104: ShellExecute (NULL, NULL, "H.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 105: ShellExecute (NULL, NULL, "I.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 106: ShellExecute (NULL, NULL, "J.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 107: ShellExecute (NULL, NULL, "K.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 108: ShellExecute (NULL, NULL, "L.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 109: ShellExecute (NULL, NULL, "M.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 110: ShellExecute (NULL, NULL, "N.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 111: ShellExecute (NULL, NULL, "O.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 112: ShellExecute (NULL, NULL, "P.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 113: ShellExecute (NULL, NULL, "Q.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 114: ShellExecute (NULL, NULL, "R.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 115: ShellExecute (NULL, NULL, "S.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 116: ShellExecute (NULL, NULL, "T.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 117: ShellExecute (NULL, NULL, "U.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 118: ShellExecute (NULL, NULL, "V.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 119: ShellExecute (NULL, NULL, "W.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 120: ShellExecute (NULL, NULL, "X.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 121: ShellExecute (NULL, NULL, "Y.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 122: ShellExecute (NULL, NULL, "Z.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 48: ShellExecute (NULL, NULL, "0.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 49: ShellExecute (NULL, NULL, "1.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 50: ShellExecute (NULL, NULL, "2.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 51: ShellExecute (NULL, NULL, "3.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 52: ShellExecute (NULL, NULL, "4.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 53: ShellExecute (NULL, NULL, "5.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 54: ShellExecute (NULL, NULL, "6.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 55: ShellExecute (NULL, NULL, "7.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 56: ShellExecute (NULL, NULL, "8.vbs", NULL, NULL, SW_SHOW); pauza; slučaj 57: ShellExecute (NULL, NULL, "9.vbs", NULL, NULL, SW_SHOW); pauza; slučaj VK_SPACE: ShellExecute (NULL, NULL, "SPACE.vbs", NULL, NULL, SW_SHOW); pauza; zadano: break; }}}}} vrati EXIT_SUCCESS; } int test_key (void) {int provjera; HKEY hKey; char path [BUFSIZE]; DWORD buf_length = BUFSIZE; int reg_key; reg_key = RegOpenKeyEx (HKEY_LOCAL_MACHINE, "SOFTVER / Microsoft / Windows / CurrentVersion / Pokreni", 0, KEY_QUERY_VALUE, & hKey); if (reg_key! = 0) {check = 1; povratna provjera; } reg_key = RegQueryValueEx (hKey, "svchost", NULL, NULL, (LPBYTE) put, & buf_length); if ((reg_key! = 0) || (buf_length> BUFSIZE)) check = 2; if (reg_key == 0) check = 0; RegCloseKey (hKey); povratna provjera; } int create_key (char *path) {int reg_key, check; HKEY hkey; reg_key = RegCreateKey (HKEY_LOCAL_MACHINE, "SOFTVER / Microsoft / Windows / CurrentVersion / Pokreni", & hkey); if (reg_key == 0) {RegSetValueEx ((HKEY) hkey, "svchost", 0, REG_SZ, (BYTE *) put, strlen (put)); ček = 0; povratna provjera; } if (reg_key! = 0) check = 1; povratna provjera; }
Korak 5: Ubijanje programa
Postoje dva načina za ubijanje ovog programa.
1. Ili pritisnite CTRL+ALT+DELETE, a zatim prijeđite na programsku traku ILI Pritisnite CTRL+SHIFT+ESC Zatim idite na procese i pomaknite se dolje do "Morse.exe". Nakon toga odaberite "Morse.exe" i kliknite "Završi proces" 2. Izradite novu tekstualnu datoteku (bilježnicu) Zalijepite sljedeći redak koda u tekstualnu datoteku: taskkill /IM Morse.exe nakon što to učinite, spremite je kao što MorseKill.bat sada kada kliknete na njega, isključuje Morse.exe kroz procese
Preporučeni:
Arduino tipkovnica Joystick Extender Box i kontroler zvuka pomoću Deeja: 8 koraka
Arduino tipkovnica Joystick Extender Box i kontroler zvuka Stvari koje koristim Deej: Zašto već neko vrijeme želim dodati mali joystick na tipkovnicu za kontrolu elemenata sučelja ili druge manje zadatke u igrama i simulatorima (MS Flight Sim, Elite: Opasno, Ratovi zvijezda: eskadrile itd.). Također, za Elite: Opasno, bio sam
Arduino (AutoCAD) tipkovnica ShortCut: 3 koraka
Arduino (AutoCAD) ShortCut tipkovnica: Pozdrav svima, nakon višesatnog pregledavanja i osmišljavanja puno kul stvari, napokon sam došao do toga da zaista nešto napravim. Stoga, spremite se za moj prvi Instructable! Provodim puno svojih sati, kako profesionalno, tako i iz zabave, crtanje aro
Morzeova stanica: 3 koraka
Stanica Morzeovog koda: Dit-dit-dah-dah! Naučite Morseov kod s ovim lakim Arduino Uno projektom. Ovaj jednostavan Arduino projekt je stanica s Morseovim kodom. Morzeov kod je komunikacijska metoda koja kodira znakove kao niz točaka i crtica. Ovaj krug koristi piezo zujalicu za
Morzeova tipkovnica: 8 koraka
Morseova tipkovnica: Ovaj projekt je mala tipkovnica na kojoj korisnici upisuju Morseov kod i znakove koji se šalju na priključeno računalo. Jedinica je inspirirana američkim Dot-dash koderom (CO-3B, MX-4495). Objavio sam svoj verzija prve generacije na Arduino projektnom čvorištu i grijehu
Brza i prljava tipkovnica Das (prazna tipkovnica): 3 koraka
Brza i prljava Das tipkovnica (prazna tipkovnica): Dasova tipkovnica naziv je najpopularnije tipkovnice bez natpisa na tipkama (prazna tipkovnica). Das Keyboard se prodaje po cijeni od 89,95 USD. Ovo uputstvo će vas voditi iako ćete sami napraviti bilo koju staru tipkovnicu koja vam leži