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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  (AYUDA) Crear un ¿auto-tip?
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: (AYUDA) Crear un ¿auto-tip?  (Leído 8,424 veces)
nhydawn

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Re: (AYUDA) Crear un ¿auto-tip?
« Respuesta #10 en: 18 Julio 2016, 13:41 pm »

Wooo wooo eso es exactamente lo que necesito, que poteé mientras yo juego, agradezco muchisimo tu ayuda, ahora una pregunta, que deberia modificar para que funcione? El juego en el adm de tareas aparece como Main.exe y las teclas a tipearse son Q y W (o solamente Q si es mas sencillo así). Otra duda, cuando dices GUI te refieres a una ventanita con botones y demas? Seria demasiado pedir que me lo programes ya funcionando?  ;D porque lo que acabo de leer es chino basico para mi  :o pero de verdad en caso que no quieras agradezco mucho tu ayuda, ahora voy a buscar una guia de VB.NET a ver si lo puedo hacer yo pero lo veo dificil  :-\


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: (AYUDA) Crear un ¿auto-tip?
« Respuesta #11 en: 18 Julio 2016, 15:08 pm »

que deberia modificar para que funcione? El juego en el adm de tareas aparece como Main.exe y las teclas a tipearse son Q y W (o solamente Q si es mas sencillo así).

Citar
Código
  1. success = (Keyboard.SendKey(Keys.F1, KeyBehavior.Press) = 2)

Solo tienes que cambiar la tecla "F1" por la que desees, y añadir más instrucciones debajo de esa linea en caso de que quieras enviar más pulsaciones adicionales (Q -> W -> etc...)



cuando dices GUI te refieres a una ventanita con botones y demas?

Si.



Seria demasiado pedir que me lo programes ya funcionando?

Si, lo siento pero es demasiado pedir. Una cosa es que te ayudemos en poca o gran medida, y otra cosa que te lo hagamos todo, aunque practicamente ya te lo di todo hecho, solo tienes que adaptar el código que te ofrecí.



lo que acabo de leer es chino basico para mi  :o

Supongo que tienes nociones de VB6, entonces no te sería demasiado dificil aprender VB.NET, tampoco tienes que aprender nada avanzado para adaptar ese código (bueno, a menos que quieras profundizar en la programación asincrónica).

Saludos!


En línea



nhydawn

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Re: (AYUDA) Crear un ¿auto-tip?
« Respuesta #12 en: 18 Julio 2016, 16:11 pm »

Perfecto  ;D voy a intentar hacerlo y les comento como me fue  :silbar:
En línea

Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: (AYUDA) Crear un ¿auto-tip?
« Respuesta #13 en: 20 Julio 2016, 12:58 pm »

Hola

No dices para que tipo de juego, de ventana, Internet, pantalla completa. Los de Mame32 no dejan. Lo digo por si quieres que dispare constantemente. Para enviar en mensaje sólo a ese juego yo primero obtendría el handle de la ventana y enviaría el mensaje de pulsación de tecla a esa ventana.

Pero esto lo he hecho con juegos que tienen algún tipo de identificador para poder enviar el mensaje. Nunca lo he hecho por ejemplo con juegos de internet. En este caso no se si sería enviarlo a la ventana de navegador.

Si lo quieres para VB6 si quieres te lo pongo, pero puedes encontrar un porrón de ejemplos en Internet.

s2s
« Última modificación: 20 Julio 2016, 13:01 pm por Lekim » En línea

nhydawn

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Re: (AYUDA) Crear un ¿auto-tip?
« Respuesta #14 en: 21 Julio 2016, 17:30 pm »

Lekim, el juego es Mu 99c una version viejita ya, yo lo ejecuto en modo ventana pero tambien tiene pantalla completa, emm me podrias ayudar a programar el auto-pot? Yo lo intente pero no me funciona :(
En línea

Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: (AYUDA) Crear un ¿auto-tip?
« Respuesta #15 en: 22 Julio 2016, 14:18 pm »

Lekim, el juego es Mu 99c una version viejita ya, yo lo ejecuto en modo ventana pero tambien tiene pantalla completa, emm me podrias ayudar a programar el auto-pot? Yo lo intente pero no me funciona :(

¿Es este?
http://mupirata.com.ar/99c/index.php

Me lo estoy descargando desde mega, ¿Es Cliente99cConSonido.exe?

Más que nada es para probar porque cada juego es un mundo. Así, no hay que hacer 30 posts

Imagino que es para PC ¿Es online?

Espero no tener que registrarme ni nada de eso  :¬¬


Nunca he usado pero he visto en foros que hay programas ya echos para esto como uno llamado AutoHotkey
Que envía pulsaciones de teclas de forma automática.

No lo he probado pero podrías probar, a lo mejor te sirve.
 
http://ahkscript.org/
« Última modificación: 22 Julio 2016, 14:26 pm por Lekim » En línea

nhydawn

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Re: (AYUDA) Crear un ¿auto-tip?
« Respuesta #16 en: 22 Julio 2016, 18:43 pm »

Es ese precisamente jaja sisi. Cliente sin sonido. Y si, te tenes que registrar  :xD ahora voy a probar el programa que me dijiste recien..
En línea

Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: (AYUDA) Crear un ¿auto-tip?
« Respuesta #17 en: 23 Julio 2016, 12:35 pm »

Es ese precisamente jaja sisi. Cliente sin sonido. Y si, te tenes que registrar  :xD ahora voy a probar el programa que me dijiste recien..

Pues que quiere que te diga no me pienso registrar :-\
En cuanto al AutoHotKey, error mío, no sirve. Según he leído "Los scripts de AutoHotkey se pueden utilizar para iniciar programas, abrir documentos, enviar pulsaciones de teclas y enviar clics y movimientos del ratón"

He mirado por ahí tutoriales y no veo como enviar las pulsaciones, solo crear acceso rápido a tareas mediante teclado.




Pues nada prueba esto. Es un ejemplo. Para usar con la calculadora de windows y el Notepad.

Hay varias maneras de enviar mensajes a una ventana, prueba esta a ver si te sirve con ese juego.

- Crea dos botones y añade el siguiente código:

para VB6

Código
  1. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
  2. (ByVal lpClassName As String, _
  3. ByVal lpWindowName As String) As Long
  4. Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
  5. (ByVal hWnd1 As Long, ByVal hWnd2 As Long, _
  6. ByVal lpsz1 As String, _
  7. ByVal lpsz2 As String) As Long
  8. Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" _
  9. (ByVal Hwnd As Long, _
  10. ByVal wFlag As Long) As Long
  11. Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
  12. (ByVal Hwnd As Long, ByVal wMsg As Long, _
  13. ByVal wParam As Long, _
  14. ByVal lParam As Long) As Long
  15.     Const VK_NUMPAD1 = &H61
  16.     Const WM_KEYUP = &H101
  17.     Const WM_KEYDOWN = &H100
  18.     Const NILL = 0&
  19.     Const WM_SYSCOMMAND = &H112
  20.     Const SC_CLOSE = &HF060
  21.     Const GW_HWNDNEXT = 2
  22.     Const GW_CHILD = 5
  23. Private Sub Form_Load()
  24. Shell ("Notepad")
  25. Shell ("Calc")
  26.  
  27. End Sub
  28.  
  29. Private Sub Command1_Click()
  30. Dim Hwnd As Long
  31. 'Windows Vista/XP
  32. Hwnd = FindWindow("SciCalc", vbNullString)
  33.  
  34. 'Windows 7
  35. 'Hwnd = FindWindow("CalcFrame", vbNullString)
  36.  
  37.     Me.Caption = Hwnd
  38.        '//Envia la pulsación de la tecla 2 (del teclado alfabético)
  39.        Call PostMessage(Hwnd, WM_KEYDOWN And WM_KEYUP , vbKey2, NILL)
  40. End Sub
  41.  
  42. Private Sub Command2_Click()
  43. Dim Hwnd As Long
  44. Dim HwndChild As Long
  45. Hwnd = FindWindow("Notepad", vbNullString)
  46.     Me.Caption = Hwnd
  47.     HwndChild = GetNextWindow(Hwnd, GW_CHILD)
  48.        '//Envia la pulsación de la tecla 2 (del teclado alfabético)
  49.        Call PostMessage(HwndChild, WM_KEYDOWN And WM_KEYUP, vbKeyQ, NILL)
  50. End Sub
  51.  


EXPLICACIÓN:
FindWindow obtiene un número que es el identificador de ventana (handle). La mayoría de los procesos de windows tienen su handle. La barra de tareas de windows por  ejemplo también tiene su handle.

Sin embargo algunas ventanas tienen ventanas "hijas", como es el caso del Notepad, donde la ventana hija es el cuadro de texto donde se escribe. Por esta razón en el segundo botón he puesto GetNextWindow, para obtener la ventana "hija" y enviar el mensaje de pulsación a esta ventana.  Podría ser que este juego tenga una ventana hijo.

SciCalc/CalcFrame, Notepad. Son nombres de clase (ClassName). Necesarios para obtener el Handle o Identificador de ventana. También es posible el nombre de la ventana, por ejemplo "Sin títuo - Bloc de notas" o "Calculadora"

Código:
Hwnd = FindWindow(vbNullString, "Calculadora")

Hwnd = FindWindow(vbNullString, "Sin título - Bloc de notas")

O ambos, útil para mismo proceso con idénticos nombres de clase pero con distinto nombre de ventana.

Código:
Hwnd = FindWindow("SciCalc", "Calculadora")

Hwnd = FindWindow("Notepad", "Sin título - Bloc de notas")


Para obtener el "Class Name" puedes usar la herramienta Spy++ incluída en VB6 o VB.NET. Al que puedes acceder desde el menú inicio de windows. Pulsa buscar ventana y arrastra la diana hasta la ventana que quieras identificar y  Spy++ te mostrará el nombre de clase y el identificador (en hexadecimal).


He metido    Me.Caption = Hwnd para que se vea el identificador, si es 0, es que no has obtenido ningún identificador.  Porque has escrito mal el nombre de clase o el de la ventana.

Para VB.NET

Código
  1. Imports System.Runtime.InteropServices
  2. Imports System.Security
  3.  
  4. Public Class Form1
  5.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.        '//Abre el notepad y la calculadora
  7.        Process.Start("Notepad")
  8.        Process.Start("Calc")
  9.        Button1.Text = "2 a Calculadora"
  10.        Button2.Text = "Q a Notepad"
  11.    End Sub
  12.  
  13.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  14.        '//Obtiene el identificador de la ventana de la Calculadora
  15.  
  16.        'Windows Vista/XP
  17.        Dim Hwnd As IntPtr = NativeMethods.FindWindow("SciCalc", Nothing)
  18.  
  19.        'Windows 7
  20.        'Dim Hwnd As IntPtr = NativeMethods.FindWindow("CalcFrame", Nothing)
  21.  
  22.        Me.Text = Hwnd
  23.        '//Envia la pulsación de la tecla 2 (del teclado alfabético)
  24.        NativeMethods.PostMessage(Hwnd,   NativeMethods.WM_KEYDOWN And NativeMethods.WM_KEYUP, Keys.D2, NativeMethods.NILL)
  25.    End Sub
  26.  
  27.    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  28.        '//Obtiene el identificador de la ventana del Notepad
  29.        Dim Hwnd As IntPtr = NativeMethods.FindWindow("Notepad", Nothing)
  30.        '//Obtiene el identificador de la ventana "hijo" del Notepad (ClassName="Edit")
  31.        Dim hwndChild As IntPtr = NativeMethods.GetNextWindow(Hwnd, NativeMethods.GW_CHILD)
  32.  
  33.        Me.Text = Hwnd
  34.        '//Envia la pulsación de la tecla 'Q'
  35.        NativeMethods.PostMessage(hwndChild,NativeMethods.WM_KEYDOWN And NativeMethods.WM_KEYUP , Keys.Q, NativeMethods.NILL)
  36.    End Sub
  37. End Class
  38.  
  39. <SuppressUnmanagedCodeSecurity()>
  40. Friend NotInheritable Class NativeMethods
  41.    Private Sub New()
  42.    End Sub
  43.    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
  44.    Friend Shared Function FindWindow( _
  45.     ByVal lpClassName As String, _
  46.     ByVal lpWindowName As String) As IntPtr
  47.    End Function
  48.  
  49.    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto, EntryPoint:="GetWindow")> _
  50.    Friend Shared Function GetNextWindow(ByVal hwnd As IntPtr, ByVal wFlag As Integer) As Integer
  51.    End Function
  52.  
  53.    <DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
  54.    Friend Shared Function FindWindowEx(ByVal hWnd1 As IntPtr, _
  55.                                        ByVal hWnd2 As IntPtr, _
  56.                                        ByVal lpsz1 As String, _
  57.                                        ByVal lpsz2 As String) As Integer
  58.  
  59.    End Function
  60.  
  61.  
  62.    <DllImport("user32.dll", CharSet:=CharSet.Auto, Entrypoint:="PostMessageA")> _
  63.    Friend Shared Function PostMessage(ByVal hwnd As IntPtr, ByVal wMsg As Integer, _
  64.                                                                           ByVal wParam As Integer, _
  65.                                                                            ByVal lParam As Integer) As Integer
  66.    End Function
  67.    Public Const VK_NUMPAD1 = &H61
  68.    Public Const WM_KEYUP = &H101
  69.    Public Const WM_KEYDOWN = &H100
  70.    Public Const NILL = 0&
  71.    Public Const WM_SYSCOMMAND = &H112
  72.    Public Const SC_CLOSE = &HF060
  73.    Public Const GW_HWNDNEXT = 2
  74.    Public Const GW_CHILD = 5
  75.  
  76. End Class
  77.  


La idea es que obtengas el nombre de clase de  la ventana del juego y pruebes desde el programa pulsando el botón a ver envía la pulsación. Si funciona pues en lugar del botón puedes usar un Timer, para que envíe una pulsación cada X segundos de forma automática.
« Última modificación: 23 Julio 2016, 17:39 pm por Lekim » En línea

nhydawn

Desconectado Desconectado

Mensajes: 15



Ver Perfil
Re: (AYUDA) Crear un ¿auto-tip?
« Respuesta #18 en: 23 Julio 2016, 16:24 pm »

No me vas a ayudar porque no te quieres registrar?  :¬¬
En línea

Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: (AYUDA) Crear un ¿auto-tip?
« Respuesta #19 en: 23 Julio 2016, 16:30 pm »

No me vas a ayudar porque no te quieres registrar?  :¬¬

XD, parece que has contestado mientras modificaba mi último post. A ver si te sirve el ejemplo.

S2s


me he liado un poco editandolo, mira otra vez
« Última modificación: 23 Julio 2016, 16:40 pm por Lekim » En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda a crear aplicacion Auto-Login
.NET (C#, VB.NET, ASP)
izaak7 7 8,083 Último mensaje 27 Octubre 2009, 05:53 am
por MANULOMM
¿Como crear un auto-clicker en C#?
Programación C/C++
milenio204 0 1,800 Último mensaje 25 Enero 2014, 11:43 am
por milenio204
¿Como puedo crear un auto-clicker en C#? Con SetPoint (X,Y).
.NET (C#, VB.NET, ASP)
milenio204 5 5,779 Último mensaje 25 Enero 2014, 19:54 pm
por milenio204
Como crear un USB auto-install con nuestros programas.
Software
Gaheru 0 1,174 Último mensaje 24 Abril 2014, 07:04 am
por Gaheru
como crear un auto publicador?
Programación General
gabrielprocs 2 2,832 Último mensaje 2 Octubre 2019, 21:21 pm
por gabrielprocs
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines