Tabla de contenido:
Video: Teclado de código Morse: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
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)
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 ++
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
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:
Estación de código Morse: 3 pasos
Estación de código Morse: ¡Dit-dit-dah-dah! Aprenda el código Morse con este sencillo proyecto de Arduino Uno. Este sencillo proyecto de Arduino es una estación de código Morse. El código Morse es un método de comunicación que codifica caracteres como una serie de puntos y guiones. Este circuito utiliza un zumbador piezoeléctrico para
K-Ability V2 - Teclado accesible de código abierto para pantallas táctiles: 6 pasos (con imágenes)
K-Ability V2 - Teclado accesible de código abierto para pantallas táctiles: Este prototipo es la segunda versión de K-Ability. K-Ability es un teclado físico que permite el uso de dispositivos de pantalla táctil a personas con patologías que provocan trastornos neuromusculares. Hay muchas ayudas que facilitan el uso de la computación
Proyecto de bloqueo de código digital Arduino usando el teclado de matriz: 9 pasos
Proyecto de bloqueo de código digital Arduino usando el teclado de matriz: Construya un dispositivo de bloqueo de código digital con el sistema Arduino y Qwiic usando Zio M Uno y un teclado de matriz Hex 4x3. in. En este tutorial, mostraremos el uso
Teclado de código Morse: 8 pasos
Teclado de código Morse: este proyecto es un pequeño teclado en el que el usuario escribe código Morse y los caracteres se envían a una computadora conectada. La unidad se inspiró en el codificador Dot-dash de EE. UU. (CO-3B, MX-4495). versión de primera generación en el centro de proyectos Arduino y sin
Teclado táctil / codificador automático de código Morse: 12 pasos (con imágenes)
Teclado táctil / codificador automático de código Morse: De hecho, construí este proyecto hace algún tiempo, pero pensé que alguien podría usar la idea. Soy un tipo de radioaficionado y me involucré un poco tarde en la vida cuando me jubilé y tuve el tiempo. Ahora tengo mi licencia general y uso el teléfono (vo