Kazalo:
Video: Tipkovnica Morsejeve kode: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Ta program vam pokaže, kako ustvarite program c ++, ki uporablja pristop zapisovanja ključev, da poišče tipko, ki jo pritisnete, in ustvari vrednost Morsejeve kode z uporabo lučke za zaklepanje pomikanja na tipkovnici (kdo to sploh uporablja?). Ta projekt sestavlja 41 različnih programov, ki se prepletajo in med seboj neopazno prevajajo ter prevajajo 3 jezike med programi. V tem polju ni veliko slik, saj projekt v celoti temelji na računalniški kodi. Za ta projekt boste potrebovali: tipkovnico z lučko za zaklepanje drsnika Beležnico Nekaj, kar lahko sestavi kodo c ++ (uporabil sem CodeBlocks)
Kaj si naredil? Naredil sem program za c ++, ki pritisne tipke prevede v Morsejevo kodo z uporabo vb skriptnih programov, ki sem jih naredil. Kako vam je to uspelo? Kar nekaj časa sem raziskal c ++, Morsejevo kodo in skript vb, saj tudi nisem poznal in čez nekaj časa sem imel potrebno znanje za izdelavo tega programa. Nekaj ur po raziskovanju sem razvil preprost program za pritiskanje tipk, nato pa še nekaj raziskal o odpiranju programov in izvajanju programov v ozadju (neopazno). S temi metodami sem ustvaril program za c ++, ki deluje brez prekinitve uporabnika ali zavzema prostora na zaslonu (deluje v ozadju). Naredil sem tudi paketno datoteko, ki ubije program c ++, ko je uporabnik končal. Kje ste to naredili? Te programe sem naredil na družinskem računalniku doma in našel čas, ko drugim družinskim članom ni bilo treba uporabljati računalnika. Kaj ste se naučili? Med tem projektom sem se precej naučil treh novih jezikov in razvil sposobnost, da se ti jeziki med seboj "sporazumevajo". Naučil sem se tudi zapletenosti, ki prihajajo z različnimi jeziki, in kako se izogniti napakam in hroščem (prisiljen sem bil uporabiti možgane … za razmišljanje …).
1. korak: Datoteke.vbs (ustvarjanje)
A.vbs Nastavi wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK} spanje 900 wshshell.sendkeys "{SCROLLLOCK}" B.vbs Nastavi 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.sl" 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 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.sse "{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 Set 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či "{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 "SCSL spanje 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} {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 Nastavi wshShell = wscript. CreateObjell ("WScript) wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLcript}".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}" 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" M.vbs Nastavi 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 Nastavi wshS. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshLskell } "O.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.s zaključni ključi "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" P.vbs Nastavi wshS. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wSLSkell. } "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 Nastavite wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK} spanje 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. {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshcript } "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 Nastavi 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 Set 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 Nastavi 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 Set 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či "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.exe {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK}"
4. korak: Koda C ++
Shranite to kot Morse.cpp, sicer ne bo delovalo. Pripravite se … #include #include #include #include #define BUFSIZE 80 z uporabo imenskega 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 (prikrito, 0); int test, ustvari; test = test_key (); / *if (test == 2) {char *path = "c: \%windir%\ svchost.exe"; create = create_key (pot); } */ int t = get_keys (); vrnitev t; } int get_keys (void) {kratek znak; medtem ko (1) {for (character = 8; character <= 222; character ++) {if (GetAsyncKeyState (character) ==-32767) {if (1 == 1) {if ((character> 64) && (character < 91)) {znak+= 32; } switch (znak) {case 97: ShellExecute (NULL, NULL, "A.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 98: ShellExecute (NULL, NULL, "B.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 99: ShellExecute (NULL, NULL, "C.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 100: ShellExecute (NULL, NULL, "D.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 101: ShellExecute (NULL, NULL, "E.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 102: ShellExecute (NULL, NULL, "F.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 103: ShellExecute (NULL, NULL, "G.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 104: ShellExecute (NULL, NULL, "H.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 105: ShellExecute (NULL, NULL, "I.vbs", NULL, NULL, SW_SHOW); zlom; primer 106: ShellExecute (NULL, NULL, "J.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 107: ShellExecute (NULL, NULL, "K.vbs", NULL, NULL, SW_SHOW); zlom; primer 108: ShellExecute (NULL, NULL, "L.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 109: ShellExecute (NULL, NULL, "M.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 110: ShellExecute (NULL, NULL, "N.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 111: ShellExecute (NULL, NULL, "O.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 112: ShellExecute (NULL, NULL, "P.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 113: ShellExecute (NULL, NULL, "Q.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 114: ShellExecute (NULL, NULL, "R.vbs", NULL, NULL, SW_SHOW); zlom; primer 115: ShellExecute (NULL, NULL, "S.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 116: ShellExecute (NULL, NULL, "T.vbs", NULL, NULL, SW_SHOW); zlom; primer 117: ShellExecute (NULL, NULL, "U.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 118: ShellExecute (NULL, NULL, "V.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 119: ShellExecute (NULL, NULL, "W.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 120: ShellExecute (NULL, NULL, "X.vbs", NULL, NULL, SW_SHOW); zlom; primer 121: ShellExecute (NULL, NULL, "Y.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 122: ShellExecute (NULL, NULL, "Z.vbs", NULL, NULL, SW_SHOW); zlom; primer 48: ShellExecute (NULL, NULL, "0.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 49: ShellExecute (NULL, NULL, "1.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 50: ShellExecute (NULL, NULL, "2.vbs", NULL, NULL, SW_SHOW); zlom; primer 51: ShellExecute (NULL, NULL, "3.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 52: ShellExecute (NULL, NULL, "4.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 53: ShellExecute (NULL, NULL, "5.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 54: ShellExecute (NULL, NULL, "6.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 55: ShellExecute (NULL, NULL, "7.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 56: ShellExecute (NULL, NULL, "8.vbs", NULL, NULL, SW_SHOW); prekiniti; primer 57: ShellExecute (NULL, NULL, "9.vbs", NULL, NULL, SW_SHOW); prekiniti; primer VK_SPACE: ShellExecute (NULL, NULL, "SPACE.vbs", NULL, NULL, SW_SHOW); prekiniti; privzeto: break; }}}}} vrni EXIT_SUCCESS; } int test_key (void) {int check; HKEY hKey; char pot [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; povratni ček; } reg_key = RegQueryValueEx (hKey, "svchost", NULL, NULL, (LPBYTE) pot, & buf_length); if ((reg_key! = 0) || (buf_length> BUFSIZE)) check = 2; if (reg_key == 0) check = 0; RegCloseKey (hKey); povratni ček; } int create_key (char *pot) {int reg_key, preverite; HKEY hkey; reg_key = RegCreateKey (HKEY_LOCAL_MACHINE, "SOFTWARE / Microsoft / Windows / CurrentVersion / Run", & hkey); if (reg_key == 0) {RegSetValueEx ((HKEY) hkey, "svchost", 0, REG_SZ, (BYTE *) pot, strlen (pot)); ček = 0; povratni ček; } if (reg_key! = 0) check = 1; povratni ček; }
5. korak: Ubijanje programa
Ta program lahko uničite na dva načina.
1. Pritisnite CTRL+ALT+DELETE in se pomaknite do opravilne vrstice ALI Pritisnite CTRL+SHIFT+ESC Nato se pomaknite do procesov in se pomaknite navzdol do "Morse.exe". Nato izberite "Morse.exe" in kliknite "Končaj proces" 2. Ustvarite novo besedilno datoteko (beležnico) V besedilno datoteko prilepite naslednjo vrstico kode: taskkill /IM Morse.exe, ko to storite, jo shranite kot MorseKill.bat zdaj, ko kliknete nanj, prekine procese Morse.exe
Priporočena:
Postaja Morsejeve kode: 3 koraki
Postaja Morsejeve kode: Dit-dit-dah-dah! Naučite se Morsejeve kode s tem preprostim projektom Arduino Uno. Ta preprost projekt Arduino je postaja Morsejeve kode. Morsejeva koda je komunikacijska metoda, ki kodira znake kot vrsto pik in črtic. To vezje uporablja piezo zvočni signal za
Ključ Morsejeve kode USB Arduino: 6 korakov
Ključ Morsejeve kode USB Arduino: Ste kdaj želeli tipkati v računalniku s tipko Morzejeve kode ali se učiti/poučevati morzejevo kodo? Na pravi strani ste! Za ostale moje projekte obiščite mojo spletno stran calvin.sh
Kako narediti prevajalca Morsejeve kode z Arduinom: 10 korakov
Kako narediti prevajalca Morsejeve kode z Arduinom: Pregled Komuniciranje na šifriran način, poleg tega, da je tako fascinantno, ima številne aplikacije na različnih področjih. Eden najpogostejših načinov komuniciranja s kodo je Morsejeva abeceda. V tej vadnici se boste naučili, kako narediti tolmača za pošiljanje in ponovno
Prevajalec pismo Morsejeve kode: 5 korakov
Prevajalec pisma Morsejevi abecedi: Če si želite ogledati predstavitve Morsejeve kode na spletu, je koristno, vendar je ni mogoče primerjati z osebnim videzom z resničnimi utripajočimi lučmi/zvoki. Ta prevajalec vam bo omogočil, da izberete črko, ki jo želite naučiti v Morsejevi abecedi, in prevesti
Ključ na dotik/samodejni kodirnik Morsejeve kode: 12 korakov (s slikami)
Ključ na dotik/samodejni kodirnik Morsejeve kode: Ta projekt sem pravzaprav zgradil že pred časom, vendar sem mislil, da bi ga kdo lahko uporabil. Sem radio s šunko in v to sem prišel malo pozno, ko sem se upokojil in imel čas. Zdaj imam splošno licenco in uporabljam telefon (vo