Jump to content
sent

[VB] carregar numa tecla do teclado

Recommended Posts

sent

Boa tarde gostava de saber se existe algum código em VB que permita carregar numa tecla do teclado, por exemplo:

carregava num botão e ele carregava nas teclas: "hello world" e se tivesse com o office word aberto ele ia escrever isso...

Gostava de fazer isto  🤔

Share this post


Link to post
Share on other sites
sent

Se soubesse o nome pelo qual havia de procurar, acredita que evitaria de criar um novo post :)

Imports System.Runtime.InteropServices

Public Class Form1

    <DllImport("user32.dll", CallingConvention:=CallingConvention.StdCall, _
           CharSet:=CharSet.Unicode, EntryPoint:="keybd_event", _
           ExactSpelling:=True, SetLastError:=True)> _
    Public Shared Sub keybd_event(ByVal bVk As Byte, ByVal bScan As Byte, _
                                  ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       Const VK_SCROLL As Byte = &H91 ' ***
       Const KEYEVENTF_KEYUP As Byte = &H2 ' ***

        keybd_event(VK_SCROLL, 0, 0, 0)               ' Generates a KEY_DOWN
        keybd_event(VK_SCROLL, 0, KEYEVENTF_KEYUP, 0) ' Generates a KEY_UP

    End Sub

End Class

encontrei isto, mas ano percebo o que esta assinalado com '*', aquele numero representa a tecla, certo? mas como e que sei o condigo de cada tecla?

e primeira vista parecia Hexadecimal, mas isso não vai ate ao H ...

Share this post


Link to post
Share on other sites
thoga31

e primeira vista parecia Hexadecimal, mas isso não vai ate ao H ...

Um hexadecimal, em VB, começa por "&H" e o que está à frente é o hexadecimal. Exemplo: &HA é 10 em inteiro. :)

Da mesma forma, um octal começa por "&O".


Knowledge is free!

Share this post


Link to post
Share on other sites
sent

encontrei isto:

scancode.gif

o que tenho nao funciona:

Imports System.Runtime.InteropServices

Public Class Form1

    <DllImport("user32.dll", CallingConvention:=CallingConvention.StdCall, _
           CharSet:=CharSet.Unicode, EntryPoint:="keybd_event", _
           ExactSpelling:=True, SetLastError:=True)> _
    Public Shared Sub keybd_event(ByVal bVk As Byte, ByVal bScan As Byte, _
                                  ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Const VK_SCROLL As Byte = &H3C

        Const KEYEVENTF_KEYUP As Byte = &H2
        While (1)
            keybd_event(VK_SCROLL, 0, 0, 0)               ' Generates a KEY_DOWN
            keybd_event(VK_SCROLL, 0, KEYEVENTF_KEYUP, 0) ' Generates a KEY_UP
            System.Threading.Thread.Sleep(1000)
        End While
    End Sub

End Class

mas, nao faz nada:

nao sei se devo mudar também o  "KEYEVENTF_KEYUP"? mas para que valor?

Share this post


Link to post
Share on other sites

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.