Powershell: Script para forzar Intro continuo en Notepad++
El otro día vi un video bastante gracioso de cómo una persona teletrabajando utilizaba un programa para simular que estaba trabajando cuando realmente no lo estaba haciendo. Decir que estas cosas hacen que los empresarios no confíen en los trabajadores y sean reticentes al teletrabajo. Pero bueno, hay gente para todo…
El caso, aún con todo me hizo gracia, y quise saber como funcionan estos programas para entender su programación.
En esas pesquisas, me di cuenta que no es algo tan complejo de programar, porque podemos utilizar Powershell y Notepad++ para que suceda lo mismo. Así que me puse a hacer pruebas con Powershell.
La idea es que ejecutes un script de Powershell y busques un documento de Notepad++ donde vamos a introducir por ejemplo, un Intro continuo, y simule que estás realizando tareas en el ordenador.
Os dejo el script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# EL BLOG DE NEGU - POWERSHELL by RAUL UNZUE # Script para enviar la tecla "Enter" de forma continua en la ventana activa # Configuración del intervalo entre pulsaciones (en milisegundos) $interval = 500 Write-Host "Coloca el cursor en el archivo de texto en Notepad++ y presiona Ctrl+C para detener el script." # Función para enviar la tecla Enter Add-Type -TypeDefinition @" using System; using System.Runtime.InteropServices; public class Keyboard { [DllImport("user32.dll", SetLastError = true)] public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, uint dwExtraInfo); public const int KEYEVENTF_KEYDOWN = 0x0000; // Presionar tecla public const int KEYEVENTF_KEYUP = 0x0002; // Soltar tecla public const byte VK_RETURN = 0x0D; // Código de tecla Enter } "@ # Bucle para enviar Enter continuamente try { while ($true) { # Enviar la tecla Enter (presionar y soltar) [Keyboard]::keybd_event([Keyboard]::VK_RETURN, 0, [Keyboard]::KEYEVENTF_KEYDOWN, 0) [Keyboard]::keybd_event([Keyboard]::VK_RETURN, 0, [Keyboard]::KEYEVENTF_KEYUP, 0) # Esperar el intervalo antes de la próxima pulsación Start-Sleep -Milliseconds $interval } } catch { Write-Host "El script se detuvo." -ForegroundColor Yellow } |
Guardáis el fichero con un PS1 de extensión y os aseguráis que la política de seguridad os permite hacerlo funcionar:
1 |
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass |
Lanzamos el script (yo lo hago con Visual Studio para validarlo) y abrimos el documento en Notepad ++. Comienza la magia, y para pararlo o le damos stop en Visual Studio o simplemente CTRL+C:
No es la entrada más funcional del mundo, pero algo de Powershell hemos aprendido 🙂
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?