elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  temporizador de teclas en bat
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: temporizador de teclas en bat  (Leído 5,282 veces)
por_cel

Desconectado Desconectado

Mensajes: 2


Ver Perfil
temporizador de teclas en bat
« en: 28 Octubre 2017, 14:01 pm »

hola me pueden ayudar?
¿Se puede ejecutar una orden que pulse una tecla ( espaciador ) y a los X segundos , la vuelva a pulsar ? indicando yo los segundos que quiera, con un programilla en bat.
Entre en este mundillo hace poco y estoy muy verde
Saludos y gracias ( Esto me serviria un webo)





En línea

Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.809



Ver Perfil
Re: temporizador de teclas en bat
« Respuesta #1 en: 28 Octubre 2017, 17:18 pm »

¿Se puede ejecutar una orden que pulse una tecla ( espaciador ) y a los X segundos , la vuelva a pulsar ? indicando yo los segundos que quiera, con un programilla en bat.

Con "puro" código Batch no es posible, Batch no provee ninguna característica de interoperabilidad con el dispositivo de teclado para poder simular eventos de pulsación de teclas ni nada que se le parezca.

Como solución alternativa, lo que se suele hacer desde un batch-script e ironicamente para cubrir las limitaciones por naturaleza de Batch, sería utilizar aplicaciones de terceros como por ejemplo nircmd, o escribir un archivo local (un script) cuyo contenido sería una unidad de código funcional escrita en el lenguaje Visual Basic Script (también conocido por sus siglas VBS), en este caso un código que llamaría al miembro SendKeys, pero llevar a cabo esta especie de hibridación de códigos se suele hacer por pura inexperiencia / ignorancia o simplemente por que el programador es un chapuzas sin remedio... ya que lo cierto es que resulta una soberana estupidez hacer algo así debido a que siempre se tiene la ventajosa opción de recurrir directamente a VBS para desarrollar todo el código desde un principio.

Entre en este mundillo hace poco y estoy muy verde

El mejor consejo que alguien te podrá dar jamás: deja de utilizar Batch, o en su defecto limítate a utilizarlo teniendo en mente el propósito con el que éste fue creado, es decir, para permitir una mínima interoperabilidad con los componentes de la shell de Windows para poder llevar a cabo tareas básicas de usuario (pero muy, muy básicas) las cuales están mayormente relacionadas con la administración del sistema de archivos en general.

Batch no es considerado como un lenguaje de programación, sino más bien como una herramienta limitada, bastante inutil y en la que el tiempo por la complejidad de escritura para el desarrollo de cualquier algoritmo que en cualquier otro lenguaje sería considerado "sencillo" de escribir y realizar, en esta herramienta se puede acabar volviendo algo extremadamente tedioso (y creando un código muy espagueti) debido a sus limitaciones.

Hay otros lenguajes a tu disposición nativamente soportados por Windows los cuales son infinitamente más completos y sofisticados en comparación, como es el caso de PowerShell, en el que además puedes compilar (para posteriormente cargar en memoria y usar los miembros compilados) unidades de código escritas en cualquier lenguaje soportado por la plataforma .NET Framework, como sería C# y VB.NET , entre otros.

En fin. Para enviar la tecla "espacio" a la ventana que esté activa y repetir la pulsación de forma indefinida con un intervalo de tiempo determinado, puedes hacerlo de la siguiente manera con PowerShell:

script.ps1
Código
  1. [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
  2.  
  3. [TimeSpan]$interval = [System.TimeSpan]::FromMilliseconds( 1000 ) # 1 sec.
  4.  [String]$keys     = " " # space bar
  5.                          # https://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send(v=vs.110).aspx
  6.  
  7. while( $true ) {
  8.    [System.Windows.Forms.SendKeys]::SendWait( $keys )
  9.    [System.Threading.Thread]::Sleep( $interval )
  10. }
( nótese que el código es sincrónico, bloqueante. )

...el código es un ejemplo que adaptarías a tus necesidades. Recuerda que aquí no le regalaremos el trabajo hecho a nadie, si necesitas estudiar la utilización básica de este lenguaje, pues estudialo, y si tienes una pregunta específica, pues sientete libre de formular dicha pregunta en este foro.

Saludos.


« Última modificación: 28 Octubre 2017, 17:44 pm por Eleкtro » En línea

por_cel

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: temporizador de teclas en bat
« Respuesta #2 en: 28 Octubre 2017, 23:03 pm »

Muchas gracias

UN SALUDO
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Temporizador
Programación C/C++
Bledniss 4 4,950 Último mensaje 29 Abril 2011, 03:39 am
por Destro-
Temporizador en C
Programación C/C++
PeKiN 2 5,456 Último mensaje 9 Junio 2011, 21:51 pm
por PeKiN
temporizador
PHP
kakashi20 1 2,823 Último mensaje 15 Marzo 2012, 19:31 pm
por #!drvy
Temporizador en C
Programación C/C++
Duning 3 10,969 Último mensaje 18 Noviembre 2013, 19:44 pm
por tutospaindani
Temporizador C#
.NET (C#, VB.NET, ASP)
Meta 4 5,915 Último mensaje 23 Diciembre 2015, 09:55 am
por Meta
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines