Autor
|
Tema: (AYUDA) Crear un ¿auto-tip? (Leído 8,358 veces)
|
nhydawn
Desconectado
Mensajes: 15
|
Hola hola gente, voy a ir directo al grano, esto intentado crear/programar un auto-tip (nombre que se me ocurrio porque no tengo idea de como se llama/llamaria) la idea es crear un programita sencillo que al presionar F8 se inicia y comienza a auto-tipear las letras Q y W de formar rapida y repetida hasta que se presiona F9 para detener el programa, estuve viendo tutoriales de autoclicks porque supuse que es bastante similar, pero no puedo lograrlo, ¿es posible que me ayuden? Creo que seria un codigo bastante sencillo pero la verdad no tengo idea de programación espero que puedan ayudarme, saludos
|
|
|
En línea
|
|
|
|
|
nhydawn
Desconectado
Mensajes: 15
|
Algo me dice que no va a ser facil Digamos, si me guio con una guia de la programación de un auto-click (es que de esto si encontre en youtube) y de alguna forma milagrosa lo modifico para que cumpla la misma funcion pero en vez de clickear, que tipee Q y W. ¿Seria posible? ¿o los codigos cambian totalmente?
|
|
|
En línea
|
|
|
|
|
nhydawn
Desconectado
Mensajes: 15
|
¿Nadie? al menos una miniguia para hacerlo porfa
|
|
|
En línea
|
|
|
|
pkj
Desconectado
Mensajes: 59
|
El caso es que las pulsaciones automáticas dan muchos problemas. Ver la tecla pulsada es facil, pero pulsar una tecla en otro programa no suele serlo. Esto sería la base de tu programa: Puedes probarlo en un nuevo proyecto con 2 timer y un textbox (que puse para las pruebas). Después de probarlo anula la línea que pone "Text1.SetFocus" y pruebalo, pero no te va a mandar teclas a otros programas. Busca por ahí los diferentes modos de enviar pulsaciones que encuentres a ver si te van mejor que SendKeys y nos cuentas. Option Explicit Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer Private Const constKeyDown = -32767 Private Sub Form_Load() 'INTERVALO DE PULSACIONES Timer2.Enabled = False Timer2.Interval = 50 'INTERVALO DE COMPROBACION DE TECLAS Timer1.Interval = 50 Timer1.Enabled = True End Sub Private Sub Timer1_Timer() Dim F8 As Integer Dim F9 As Integer ' COMPROBAMOS LAS TECLAS F8 = GetAsyncKeyState(vbKeyF8) F9 = GetAsyncKeyState(vbKeyF9) 'SI SE HAN PULSADO HACEMOS LO QUE TOQUE If F8 <= constKeyDown Then 'ENFOCAMOS AL TEXTBOX PARA QUE SE PULSEN AHI LAS TECLAS Text1.SetFocus ' Y ACTIVAMOS EL TIMER Timer2.Enabled = True End If If F9 <= constKeyDown Then 'DESACTIVAMOS EL TIMER Timer2.Enabled = False End If End Sub Private Sub Timer2_Timer() 'PUEDEN PULSARSE LAS 2 TECLAS A CADA VUELTA: 'SendKeys "QW" ' O CADA CICLO UNA TECLA: ' VARIABLE QUE NO SE BORRA AL SALIR DE LA SUB Static Ultimaletra As String ' SEGUN LA ULTIMA PULSACION ELEGIMOS LA TECLA A PULSAR If Ultimaletra = "Q" Then SendKeys "W" Ultimaletra = "W" Else SendKeys "Q" Ultimaletra = "Q" End If End Sub
Saludos
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
auto-tip (nombre que se me ocurrio porque no tengo idea de como se llama/llamaria) Para que puedas darle un nombre mejor, te digo que en todo caso más bien seria "auto-type", por que un "tip" es algo muy distinto que nada tiene que ver. Veo que has buscado como hacer esto en otros lenguajes (por aquél post que has compartido), así que te pregunto: ¿realmente necesitas hacerlo en VB6?. Si el lenguaje te es indiferente entonces puedo mostrarte una manera facilisima e intuitiva utilizando mi librería gratuita ElektroKit, mediante VB.NET o C#. También deberías aclarar si simplemente pretendes enviar pulsaciones del teclado sin más, o más bien pretendes adjuntar texto a la ventana de edición de un programa de terceros. Son dos cosas muy distintas con sus respectivas técnicas. Saludos
|
|
« Última modificación: 17 Julio 2016, 21:25 pm por Eleкtro »
|
En línea
|
|
|
|
nhydawn
Desconectado
Mensajes: 15
|
Muchas gracias por las respuestas, pkj gracias por el codigo, voy a intentar hacerlo funcionar Elektro, no no para nada, cualquier lenguaje que me ayude a lograr lo que necesito me vendria bien, la idea es que las pulsaciones se envien a un juego, lo que estoy pidiendo en este post para no andar con rodeos es un "auto-pot" (pot=pociones) si no es mucha molestia, estaria buenisimo que me ayudes a programarlo como vos decis
|
|
« Última modificación: 18 Julio 2016, 07:28 am por ASOUKU »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
Muchas gracias por las respuestas, pkj gracias por el codigo, voy a intentar hacerlo funcionar Elektro, no no para nada, cualquier lenguaje que me ayude a lograr lo que necesito me vendria bien, la idea es que las pulsaciones se envien a un juego, lo que estoy pidiendo en este post para no andar con rodeos es un "auto-pot" (pot=pociones) si no es mucha molestia, estaria buenisimo que me ayudes a programarlo como vos decis Entonces, si no he entendido mal, ¿quieres que mientras tú estás jugando al juego (es decir, mientras la ventana del juego está activa), cada "X" tiempo se pulse la tecla para tomar una poción?. En ese caso lo podrías hacer de la siguiente manera: 1. Descarga la librería ElektroKit: 2. Utiliza un código parecido a este: Imports System.Threading Imports System.Threading.Thread Imports System.Windows.Forms
Imports Elektro.Core.IO.Enums Imports Elektro.Core.IO.Tools
Public Module Module1
Public Sub Main() Console.Title = "Auto-Potion"
Console.WriteLine("Press any key to start...") Console.ReadKey(intercept:=True)
Module1.RunBot() End Sub
<DebuggerStepperBoundary> Private Sub RunBot() ' Añadir tareas aquí. Dim potionAction As Action = Sub() Module1.TakePotion(TimeSpan.FromSeconds(3)) Dim potionTask As New Task(potionAction)
' Iniciar tareas aquí (asincrónicamente). Console.Clear() Console.WriteLine("Bot is running...") potionTask.Start()
' Esperar sincrónicamente a que todas las tareas asincrónicas finalicen. Task.WaitAll({potionTask}) End Sub
<DebuggerStepThrough> Private Sub TakePotion(ByVal interval As TimeSpan)
Dim success As Boolean Do While True Sleep(interval) success = (Keyboard.SendKey(Keys.F1, KeyBehavior.Press) = 2) If (success) Then Console.WriteLine("[{0}] Potion consumed.", DateTime.Now.ToLongTimeString()) Else Environment.ExitCode = 1 Environment.FailFast(String.Format("Not all keystrokes were sent in Method: '{0}()'.", New StackFrame(0).GetMethod.Name)) End If Loop
End Sub
End Module
Saludos
|
|
« Última modificación: 18 Julio 2016, 10:27 am por Eleкtro »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
Hay un BUG en el foro que no me permite publicar el código de forma deseada ni modificar el post correctamente, así que lo siento, pero hago este doble post. >>> Con la misma librería puedes identificar "X" ventana si lo llegas a necesitar (para darle el foco o lo que quieras), y también puedes registrar teclas de acceo rápido (o system-wide hotkeys) para pausar el bot en cualquier momento, pero eso ya sería conveniente hacerlo en una GUI por el paradigma de eventos, lo que te he mostrado es una aplicación CLI escrita en VB.NET.
Saludos
|
|
« Última modificación: 18 Julio 2016, 10:42 am por Eleкtro »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ayuda a crear aplicacion Auto-Login
.NET (C#, VB.NET, ASP)
|
izaak7
|
7
|
8,053
|
27 Octubre 2009, 05:53 am
por MANULOMM
|
|
|
¿Como crear un auto-clicker en C#?
Programación C/C++
|
milenio204
|
0
|
1,775
|
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,756
|
25 Enero 2014, 19:54 pm
por milenio204
|
|
|
Como crear un USB auto-install con nuestros programas.
Software
|
Gaheru
|
0
|
1,143
|
24 Abril 2014, 07:04 am
por Gaheru
|
|
|
como crear un auto publicador?
Programación General
|
gabrielprocs
|
2
|
2,798
|
2 Octubre 2019, 21:21 pm
por gabrielprocs
|
|