Jump to content

Recommended Posts

Posted

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

Posted

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!

Posted

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

Posted

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?

Posted

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

Posted

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

Posted

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)

Posted

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
Posted

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? 🙂

Posted

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)

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.