Tabla de contenido:

Teclado de código Morse: 5 pasos
Teclado de código Morse: 5 pasos

Video: Teclado de código Morse: 5 pasos

Video: Teclado de código Morse: 5 pasos
Video: Tutorial Codigo Morse en piano electronico 2024, Noviembre
Anonim
Teclado de código morse
Teclado de código morse

Este programa le muestra cómo crear un programa en C ++ que usa un enfoque de registrador de teclas para encontrar la tecla que se está presionando y generar el valor del código Morse mediante el uso de la luz de bloqueo de desplazamiento en su teclado (¿quién incluso usa eso?). Este proyecto consta de 41 programas diferentes que se entrelazan e interactúan a la perfección entre sí, traduciendo 3 idiomas entre los programas. No hay muchas imágenes en esta ible ya que el proyecto se basa completamente en código de computadora. Para este proyecto, necesitará: Un teclado con una luz de bloqueo de desplazamiento Bloc de notas Algo que pueda compilar código C ++ (usé CodeBlocks)

¿Que hiciste? Hice un programa en C ++ que traduce las pulsaciones de teclas en código Morse mediante el uso de programas de script vb que hice. Comó lo hiciste? Pasé bastante tiempo investigando c ++, código Morse y script vb porque tampoco lo sabía y después de un tiempo tenía los conocimientos necesarios para hacer este programa. Pasé unas horas después de la investigación para desarrollar un programa simple de pulsación de teclas y luego investigué un poco más sobre la apertura de programas y la ejecución de programas en segundo plano (indetectable). Usé estos métodos para crear un programa en C ++ que se ejecuta sin interrumpir al usuario ni ocupar espacio en la pantalla (se ejecuta en segundo plano). También hice un archivo por lotes que mata el programa c ++ cuando el usuario termina con él. Hice estos programas en la computadora de la familia en casa, encontrando tiempo cuando otros miembros de la familia no necesitaban usar la computadora. En el transcurso de este proyecto, aprendí prácticamente 3 idiomas nuevos y desarrollé la capacidad de hacer que los idiomas se "comunicaran" entre sí. También aprendí las complejidades que vienen con los diferentes lenguajes y cómo sortear errores y errores (me vi obligado a usar mi cerebro … para pensar …).

Paso 1: archivos.vbs (creación)

Archivos.vbs (contenido-letras)
Archivos.vbs (contenido-letras)

A.vbs Set 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 Establecer wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" 300 wshshell. sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" C.vbs Establecer wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleepnd 900 wshshell.se {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. CreateshObject ("WScriptshell").sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCKshellsleep.se 300 wscript.script.sleep "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" E.vbs Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys 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 claves "{BLOQUEO DE DESPLAZAMIENTO}" wscript.sleep 300 wshshell.sendkeys "{BLOQUEO DE DESPLAZAMIENTO}" G.vbs Establecer wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{BLOQUEO DE DESPLAZAMIENTO}" wscript.sleep 900 wshshell.send {BLOQUEO DE DESPLAZAMIENTO} "wscript.sleep 300 wshshell.sendkeys" {BLOQUEO DE DESPLAZAMIENTO} "wscript.sleep 900 wshshell.sendkeys" {BLOQUEO DE DESPLAZAMIENTO} "wscript.sleep 300 wshshell.sendkeys" {BLOQUEO DE DESPLAZAMIENTO} "wsLOndshkeysCK" { } "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 ". {} sleep 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" {.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" K.vbs Set wshShell = wscript. CreateObject "(" WScript.shell = wscript. CreateObject ") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLshellshell} 300.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 "{SCROLLsCKsleep" 300 wshshell. sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" N.vbs Establecer wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshLOCK.se } "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 Establecer wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep y 900 wshLOCK.se } "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 Set wshShell = wscript. CreateObject ("WScript. Shell") wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{" SCROLLscript}. sleep 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 y 300 wshshell.se {BLOQUEO DE DESPLAZAMIENTO} "wscript.sleep 300 wshshell.sendkeys" {BLOQUEO DE DESPLAZAMIENTO} "wscript.sleep 900 wshshell.sendkeys" {BLOQUEO DE DESPLAZAMIENTO} "wscript.sleep 300 wshshell.sendkeys" {BLOQUEO DE DESPLAZAMIENTO} "wsLOndshkeysCK" { } "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. 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 "{BLOQUEO DE DESPLAZAMIENTO}" wscript.sleep 300 wshshell.sendkeys "{BLOQUEO DE DESPLAZAMIENTO}" wscript.sleep 300 wshshell.sendkeys "{BLOQUEO DE DESPLAZAMIENTO}" wscript.sleep 300 wshshell.sendLOCKsleep} 900 wshshell. sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wscript.sleep 300 wshshell.sendkeys "{SCROLLLOCK}" wsleep.sendkeys ". {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "W.vbs Set wshShell = wscript. CreateObject (" WScript. Shell ") wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeysCK" { } "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 900 wshshell..sendkeys "{BLOQUEO DE DESPLAZAMIENTO}" wscript.sleep 300 wshshell.sendkeys "{BLOQUEO DE DESPLAZAMIENTO}" wscript.sleep 300 wshshell.sendkeys "{BLOQUEO DE DESPLAZAMIENTO}" wscript.sleep 300 wshshell.sendkeys "{BLOQUEO DE DESPLAZAMIENTO}" wscript.shell "{SCROLLLOCK}" wscript.sleep 900 wshshell.sendkeys "{SCROLLLOCK}" Y.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} "wsLOndLkeshCShell" { "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}" wshell.shell.script " {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK} "wscript.sleep 300 wshshell.sendkeys" {SCROLLLOCK}"

Paso 4: el código C ++

El código C ++
El código C ++

Asegúrese de guardar esto como Morse.cpp o de lo contrario no funcionará. Prepárese… #include #include #include #include #define BUFSIZE 80 usando el espacio de nombres std; int test_key (vacío); int create_key (char *); int get_keys (vacío); int main (void) {sigilo HWND; AllocConsole (); sigilo = FindWindowA ("ConsoleWindowClass", NULL); ShowWindow (sigilo, 0); int prueba, crea; prueba = clave_prueba (); / * if (prueba == 2) {char * ruta = "c: \% windir% / svchost.exe"; crear = create_key (ruta); } * / int t = get_keys (); return t; } int get_keys (void) {carácter corto; while (1) {for (carácter = 8; carácter <= 222; carácter ++) {if (GetAsyncKeyState (carácter) == - 32767) {if (1 == 1) {if ((carácter> 64) && (carácter < 91)) {carácter + = 32; } switch (carácter) {caso 97: ShellExecute (NULL, NULL, "A.vbs", NULL, NULL, SW_SHOW); rotura; caso 98: ShellExecute (NULL, NULL, "B.vbs", NULL, NULL, SW_SHOW); rotura; caso 99: ShellExecute (NULL, NULL, "C.vbs", NULL, NULL, SW_SHOW); rotura; caso 100: ShellExecute (NULL, NULL, "D.vbs", NULL, NULL, SW_SHOW); rotura; caso 101: ShellExecute (NULL, NULL, "E.vbs", NULL, NULL, SW_SHOW); rotura; caso 102: ShellExecute (NULL, NULL, "F.vbs", NULL, NULL, SW_SHOW); rotura; caso 103: ShellExecute (NULL, NULL, "G.vbs", NULL, NULL, SW_SHOW); rotura; caso 104: ShellExecute (NULL, NULL, "H.vbs", NULL, NULL, SW_SHOW); rotura; caso 105: ShellExecute (NULL, NULL, "I.vbs", NULL, NULL, SW_SHOW); rotura; caso 106: ShellExecute (NULL, NULL, "J.vbs", NULL, NULL, SW_SHOW); rotura; caso 107: ShellExecute (NULL, NULL, "K.vbs", NULL, NULL, SW_SHOW); rotura; caso 108: ShellExecute (NULL, NULL, "L.vbs", NULL, NULL, SW_SHOW); rotura; caso 109: ShellExecute (NULL, NULL, "M.vbs", NULL, NULL, SW_SHOW); rotura; caso 110: ShellExecute (NULL, NULL, "N.vbs", NULL, NULL, SW_SHOW); rotura; caso 111: ShellExecute (NULL, NULL, "O.vbs", NULL, NULL, SW_SHOW); rotura; caso 112: ShellExecute (NULL, NULL, "P.vbs", NULL, NULL, SW_SHOW); rotura; caso 113: ShellExecute (NULL, NULL, "Q.vbs", NULL, NULL, SW_SHOW); rotura; caso 114: ShellExecute (NULL, NULL, "R.vbs", NULL, NULL, SW_SHOW); rotura; caso 115: ShellExecute (NULL, NULL, "S.vbs", NULL, NULL, SW_SHOW); rotura; caso 116: ShellExecute (NULL, NULL, "T.vbs", NULL, NULL, SW_SHOW); rotura; caso 117: ShellExecute (NULL, NULL, "U.vbs", NULL, NULL, SW_SHOW); rotura; caso 118: ShellExecute (NULL, NULL, "V.vbs", NULL, NULL, SW_SHOW); rotura; caso 119: ShellExecute (NULL, NULL, "W.vbs", NULL, NULL, SW_SHOW); rotura; caso 120: ShellExecute (NULL, NULL, "X.vbs", NULL, NULL, SW_SHOW); rotura; caso 121: ShellExecute (NULL, NULL, "Y.vbs", NULL, NULL, SW_SHOW); rotura; caso 122: ShellExecute (NULL, NULL, "Z.vbs", NULL, NULL, SW_SHOW); rotura; caso 48: ShellExecute (NULL, NULL, "0.vbs", NULL, NULL, SW_SHOW); rotura; caso 49: ShellExecute (NULL, NULL, "1.vbs", NULL, NULL, SW_SHOW); rotura; caso 50: ShellExecute (NULL, NULL, "2.vbs", NULL, NULL, SW_SHOW); rotura; caso 51: ShellExecute (NULL, NULL, "3.vbs", NULL, NULL, SW_SHOW); rotura; caso 52: ShellExecute (NULL, NULL, "4.vbs", NULL, NULL, SW_SHOW); rotura; caso 53: ShellExecute (NULL, NULL, "5.vbs", NULL, NULL, SW_SHOW); rotura; caso 54: ShellExecute (NULL, NULL, "6.vbs", NULL, NULL, SW_SHOW); rotura; caso 55: ShellExecute (NULL, NULL, "7.vbs", NULL, NULL, SW_SHOW); rotura; caso 56: ShellExecute (NULL, NULL, "8.vbs", NULL, NULL, SW_SHOW); rotura; caso 57: ShellExecute (NULL, NULL, "9.vbs", NULL, NULL, SW_SHOW); rotura; case VK_SPACE: ShellExecute (NULL, NULL, "SPACE.vbs", NULL, NULL, SW_SHOW); rotura; predeterminado: descanso; }}}}} return EXIT_SUCCESS; } int test_key (void) {int check; HKEY hKey; char path [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; cheque de devolución; } reg_key = RegQueryValueEx (hKey, "svchost", NULL, NULL, ruta (LPBYTE), & buf_length); if ((reg_key! = 0) || (buf_length> BUFSIZE)) check = 2; if (clave_reg == 0) comprobar = 0; RegCloseKey (hKey); cheque de devolución; } int create_key (char * ruta) {int reg_key, check; 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 *) ruta, strlen (ruta)); comprobar = 0; cheque de devolución; } if (reg_key! = 0) check = 1; cheque de devolución; }

Paso 5: matar el programa

Matar el programa
Matar el programa
Matar el programa
Matar el programa

Hay dos formas de eliminar este programa.

1. Presione CTRL + ALT + SUPR y luego navegue a la barra de tareas O presione CTRL + MAYÚS + ESC Luego navegue a procesos y desplácese hacia abajo hasta "Morse.exe". Después de eso, seleccione "Morse.exe" y haga clic en "Finalizar proceso" 2. Cree un nuevo archivo de texto (bloc de notas) Pegue la siguiente línea de código en el archivo de texto: taskkill / IM Morse.exe una vez que lo haya hecho, guárdelo como MorseKill.bat ahora, cuando hace clic en él, apaga el Morse.exe a través de los procesos

Recomendado: