Ivo Pereira Posted May 2, 2009 at 05:47 PM Report #260879 Posted May 2, 2009 at 05:47 PM Boas pessoal, há alguma coisa que possa bloquear o SendKeys de funcionar? É que a primeira vez que o experimentei funcionava, agora deixou de dar, mesmo comentando o resto do código, continua na mesma coisa. O que está mal aqui? Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load InputBox("lol") SendKeys.Send("lol") End Sub Abraço
Ivo Pereira Posted May 4, 2009 at 04:33 PM Author Report #261266 Posted May 4, 2009 at 04:33 PM Será que assim conseguem perceber melhor o problema ? 😉 Abraço
anolsi Posted May 4, 2009 at 04:39 PM Report #261269 Posted May 4, 2009 at 04:39 PM Tens que reparar que o SendKeys simula o teclado, logo, quem tiver o focus (pode até não ser uma janela do teu projecto) é que vais receber isso. Por isso, a tua inputbox pode não estar a receber, mas o sendkeys estar a enviar. "Nós somos o que fazemos repetidamente, a excelência não é um feito, e sim, um hábito."Não respondo a questões por PM que possam ser colocadas no fórum!
bruno1234 Posted May 4, 2009 at 04:45 PM Report #261270 Posted May 4, 2009 at 04:45 PM Experimenta por um activate antes do sendkeys e um focus na textbox Assim: Private Sub Form1_load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Activate() "instancia da Caixa de Texto".Focus() SendKeys.Send("LOL") End Sub Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos
Ivo Pereira Posted May 4, 2009 at 04:49 PM Author Report #261273 Posted May 4, 2009 at 04:49 PM Experimenta por um activate antes do sendkeys e um focus na textbox Assim: Private Sub Form1_load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Activate() "instancia da Caixa de Texto".Focus() SendKeys.Send("LOL") End Sub Assim funciona. Então e como conseguiria fazer o SendKeys numa InputBox por exemplo?
bruno1234 Posted May 4, 2009 at 04:52 PM Report #261275 Posted May 4, 2009 at 04:52 PM inputBox.focus(), da mm maneira q esse. Mas porque queres fazer isso através do SendKeys? Nas caixas de texto tb podes afectar a propriedade Text. Com Caixa.Text = "LOL" Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos
Ivo Pereira Posted May 4, 2009 at 05:07 PM Author Report #261284 Posted May 4, 2009 at 05:07 PM inputBox.focus(), da mm maneira q esse. Mas porque queres fazer isso através do SendKeys? Nas caixas de texto tb podes afectar a propriedade Text. Com Caixa.Text = "LOL" Há aqui uma coisa que não apanhei. O InputBox não tem Focus. E o InputBox não é uma TextBox, são coisas diferentes. Já agora: Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted System.Threading.Thread.Sleep(5000) SetCursorPos(270, 404) ' Where X and Y are in pixel Dim tempPos As Point Dim R As Long = GetCursorPos(tempPos) ' You'll get your location in TempPos mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) System.Threading.Thread.Sleep(10000) WebBrowser1.Focus() SendKeys.Send("teste") End Sub Por exemplo, este código não me escreve no campo. Apesar do campo ficar seleccionado e até posto de forma a edição de texto. O campo no site é em Flash, fará isso alguma diferença? É que se não for o SendKeys e eu escrever dá na maior. Abraço
bruno1234 Posted May 4, 2009 at 05:16 PM Report #261292 Posted May 4, 2009 at 05:16 PM Aí o q fica com o Focus é o componente WebBrowser, tinhas q fazer chegar o focus ao conteudo desse web browser. Visto isso ser em flash não tou a ver como o poderás fazer. Talvez enviar o sendkeys, e do lado do flash no action script ter alguma coisa q detecte qd são enviadas as Keys. Como n conheço actionscript n te sei dizer se isso é possivel, mas acho q sim. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos
Gooden Posted May 4, 2009 at 05:54 PM Report #261315 Posted May 4, 2009 at 05:54 PM Tipo se quiseres escrever algo numa inputbox usas o default value InputBox("Pergunta", "", "Lol") Explica melhor a questão por favor
Ivo Pereira Posted May 4, 2009 at 06:20 PM Author Report #261321 Posted May 4, 2009 at 06:20 PM Tipo se quiseres escrever algo numa inputbox usas o default value InputBox("Pergunta", "", "Lol") Explica melhor a questão por favor Só não queria isso porque era mesmo para testar as SendKeys, e não percebi porque lá não davam. Ora bem, então vou explicar tudo. No outro dia lembrei-me de fazer um bot para o jogo MyBrute, que nem sei como se joga, mas como se tinha de interagir e o adversário ganhava pontos só pelo preenchimento de um username e o clique em 2 teclas, pensei em fazer uma coisa destas para vender a pessoal que eu sei que está interessado. Ora bem, actualmente, já consegui ter o código para que, quando o carregamento do documento do WebBrowser estiver completo, ele clica na posição do ecrã definida por mim, que vai activar a caixa de texto em Flash, de seguida faço um SendKeys para essa caixa de texto, mas népia. Tá aqui o código, os sleep's, são para dar tempo ao PC para processar alguma informação que não tenha ficado por processar. Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted System.Threading.Thread.Sleep(5000) SetCursorPos(270, 404) ' Where X and Y are in pixel Dim tempPos As Point Dim R As Long = GetCursorPos(tempPos) ' You'll get your location in TempPos mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) System.Threading.Thread.Sleep(10000) WebBrowser1.Focus() SendKeys.Send("teste") End Sub Ajuda ? (A)
jpaulino Posted May 4, 2009 at 07:45 PM Report #261344 Posted May 4, 2009 at 07:45 PM A função InputBox() é modal, ou seja, o resto do código só se faz quando esta fechar. Uma forma de fazer o que queres é usar um timer para escrever através de uma nova thread. Por exemplo: Private WithEvents tm As Timer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click tm = New Timer tm.Interval = 150 tm.Start() InputBox("Isto é um teste ... ") End Sub Private Sub tm_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tm.Tick tm.Stop() SendKeys.Send("ABC") End Sub
Ivo Pereira Posted May 4, 2009 at 08:26 PM Author Report #261356 Posted May 4, 2009 at 08:26 PM A função InputBox() é modal, ou seja, o resto do código só se faz quando esta fechar. Uma forma de fazer o que queres é usar um timer para escrever através de uma nova thread. Por exemplo: Private WithEvents tm As Timer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click tm = New Timer tm.Interval = 150 tm.Start() InputBox("Isto é um teste ... ") End Sub Private Sub tm_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles tm.Tick tm.Stop() SendKeys.Send("ABC") End Sub Ok, obrigado. E quanto ao problema do Flash, consegues ajudar-me? 🙂
jpaulino Posted May 4, 2009 at 08:34 PM Report #261359 Posted May 4, 2009 at 08:34 PM E quanto ao problema do Flash, consegues ajudar-me? 🙂 Não sei, só testando. Podes arranjar um exemplo ?
Ivo Pereira Posted May 4, 2009 at 09:36 PM Author Report #261408 Posted May 4, 2009 at 09:36 PM Não sei, só testando. Podes arranjar um exemplo ? Exemplo como? Ora: http://sirpereira.mybrute.com/ , com um WebBrowser, após simulares um clique na parte onde é para pôr o username, experimenta lá fazer um SendKeys.
drake101 Posted May 9, 2009 at 01:53 AM Report #262554 Posted May 9, 2009 at 01:53 AM porque nao fazes isso em AutoIT? é a linguagem mais usada para fazer "Bots" para jogos 😕 , e vem com um help gigante que tem tudo o que possas querer fazer la... (em menos de 2h fazes isso la)
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now