Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

blackice856

[Resolvido] Arrays

Recommended Posts

blackice856

Tou a fazer uma espécie de keyloger para um colega meter nos pcs da escola (malandro ^^).

Como usar os hooks do windows e essas tretas dá muito trabalho resolvi fazer algo do género:

If e.KeyCode = Keys.A Then

        "código aqui"

        End If

I fazer isto um monte de vezes até ter todas as letras vai me dar trabalho.

Mas lembrei-me duma coisa que já tinha ouvido falar mas que nunca percebi bem chamados arrays.

Um array acho que define um intervalo, supostamente esse intervalo deverá ser de 1 - a 27 (letras do abcedário).

Alguém me conseguia postar aqui um pequeno exemplo de como deverá ser o meu código? É que já tou farto de ler artigos sobre isto, mas acho que só vou lá com um exemplo.

Share this post


Link to post
Share on other sites
jpaulino

Dessa forma não vai funcionar, a não ser que a aplicação esteja visivel e com o focus.

Tens que utilizar um nível mais baixo de programação, recorrendo a API's (hooks como chamaste)

Share this post


Link to post
Share on other sites
blackice856

Obrigada pela ajuda, mas continuei sem perceber isso dos arrays. Se me pudessem explicar melhor. É que não tem lógica o que estou a fazer.

Share this post


Link to post
Share on other sites
jpaulino

Um array funciona desta forma

        Dim array(3) As String

        array(0) = "isto"

        array(1) = "é"

        array(2) = "um"

        array(3) = "teste"

        For Each p As String In array

            Debug.WriteLine(p)

        Next

Ou seja, defines o array com 4 posições de memória (3 porque começa no zero) e depois defines para cada posição o que queres guarda (texto, numeros. etc). Finalmente tens um pequeno exemplo de como mostrar os dados.

Com o VS.NET apareceram as generics collections . Têm diversas vantagens em relação aos arrays convencionais e podes ver mais informações aqui: VB.NET: Utilizando Colecções List(Of T)


Finalmente, e para o que qeres, não precisas de colecções ou arrays. Podes fazer assim:

Public Class Form1

    Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress

        Debug.WriteLine(Chr(AscW(e.KeyChar)))

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.KeyPreview = True

    End Sub

End Class

Espero que isto ajude a esclarecer!

Share this post


Link to post
Share on other sites
blackice856

OMG nem sei como não me lembrei disso...

Já agora, deves ter tido uma razão para escreveres  "Debug.WriteLine(Chr(AscW(e.KeyChar)))" ou não?

É que  "Debug.WriteLine(e.KeyChar)" chegou-me.

PS: És o meu heroi ^^!

Share this post


Link to post
Share on other sites
jpaulino

Já agora, deves ter tido uma razão para escreveres  "Debug.WriteLine(Chr(AscW(e.KeyChar)))" ou não?

LOL, não ... enganei-me. :(

Depois tirei mas não me lembrei de alterar no fórum.

PS: És o meu heroi ^^!

Ainda bem que pude ajudar :)

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

×

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.