Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: 0x0309 en 17 Agosto 2009, 08:37 am



Título: [Vbscript] ¿Se puede enviar mensajes a una ventana?
Publicado por: 0x0309 en 17 Agosto 2009, 08:37 am
Hola quiero saber si se puede, y si así es: cómo.
¿Se puede enviar mensajes a una ventana?

Sucede que tengo un código hecho en batch, usando nircmdc.exe envío mensajes directamente a una ventana, para resolver puzzles, pero quiero hacerlo con vbscript.

En este caso envío las notificaciones: WM_KEYDOWN y WM_KEYUP
Quiero convertir este código de batch + nircmdc a vbscript:

Código:
@echo off
setlocal enabledelayedexpansion enableextensions

:in
cls
(set lurd=)
set /p lurd=Lurd:
if not defined lurd (goto :in)

:loop_in
set mov=!lurd:~0,1!
set lurd=!lurd:~1!
cls
echo.!mov!
(set kc=0x0)
if /i "!mov!"=="L" (set kc=0x25)
if /i "!mov!"=="U" (set kc=0x26)
if /i "!mov!"=="R" (set kc=0x27)
if /i "!mov!"=="D" (set kc=0x28)
nircmdc win sendmsg ititle " for WINDOWS" 0x100 !kc! 0
nircmdc wait 360
nircmdc win sendmsg ititle " for WINDOWS" 0x101 !kc! 0

if defined lurd (goto :loop_in)
goto :in


Título: Re: [Vbscript] ¿Se puede enviar mensajes a una ventana?
Publicado por: Novlucker en 17 Agosto 2009, 13:34 pm
Podrías hacer algo así ...

Código
  1. Set objshell = Createobject("wscript.shell")
  2.  
  3. do until objshell.appactivate("C:\WINDOWS\system32\cmd.exe")
  4. wscript.sleep 200
  5. Loop

Esta parte del code para asegurarnos de poner el foco en tu ventana (esa ruta es justamente porque veo que la ventana se "llama" así), ya que hacemos un sleep hasta bien no tenga el foco.

Luego es cuestión de trabajar con el mismo objecto (wscript.shell) y las teclas correspondientes

KeyArgument
BACKSPACE{BACKSPACE}, {BS}, or {BKSP}
BREAK{BREAK}
CAPS LOCK{CAPSLOCK}
DEL or DELETE{DELETE} or {DEL}
DOWN ARROW{DOWN}
END{END}
ENTER{ENTER} or ~
ESC{ESC}
HELP{HELP}
HOME{HOME}
INS or INSERT{INSERT} or {INS}
LEFT ARROW{LEFT}
NUM LOCK{NUMLOCK}
PAGE DOWN{PGDN}
PAGE UP{PGUP}
PRINT SCREEN{PRTSC}
RIGHT ARROW{RIGHT}
SCROLL LOCK{SCROLLLOCK}
TAB{TAB}
UP ARROW{UP}
F1{F1}
Fx{Fx}


Código
  1. 'siguiendo con el code anterior
  2. objshell.sendkeys "{DOWN}"
  3. objshell.sendkeys "{UP}"

Saludos