Jump to content

[RESOLVIDO] [VB.NET] KeyPress


Ivo Pereira

Recommended Posts

Boas pessoal,

gostava de saber por exemplo, tipo se eu tiver o programa em execução e carregar Alt+F4 não acontece nada, ou se carregar Ctrl + Alt + Del, ou qualquer tecla possível para sair do programa. E queria saber também como fazer, por exemplo, seguindo a lógica do exemplo anterior, o utilizador só sairia do programa se escrevesse no Form (sem qualquer campo seleccionado), não sei se me fiz entender, tipo como metem truques no GTA por exemplo 😄 o utilizador escrevia uma palavra à minha escolha e assim sim sairia do programa... ?

Cumprimentos

Link to comment
Share on other sites

  • 4 weeks later...

Fonte: http://www.neowin.net/forum/index.php?showtopic=562480&pid=588576932&st=0&#entry588576932

Protected Overrides Function ProcessDialogKey(ByVal keyData As System.Windows.Forms.Keys) As Boolean

        Select Case (keyData)
            Case Keys.Control
                MessageBox.Show("Control Key pressed")
                Return True
            Case Keys.Alt Or Keys.F4
                MessageBox.Show("Alt F4 pressed")
                Return True
        End Select
        Return MyBase.ProcessDialogKey(keyData)
    End Function
Link to comment
Share on other sites

Aqui tens um exemplo mais completo para as tuas dúvidas:

Public Class Form1



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

        Button1.Text = "Clique para sair"
        Button1.AutoSize = True
        Me.ControlBox = False


    End Sub


    Protected Overrides Function ProcessDialogKey(ByVal keyData As System.Windows.Forms.Keys) As Boolean

        Select Case (keyData)
            Case Keys.Control
                MessageBox.Show("Control Key pressed")
                Return True
            Case Keys.Alt Or Keys.F4
                MessageBox.Show("Alt F4 pressed")
                Return True
        End Select
        Return MyBase.ProcessDialogKey(keyData)
    End Function

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

        If TextBox1.Text = "Sair" Then

            End
            
        End If
    End Sub
End Class
Link to comment
Share on other sites

Pa desculpa ainda nao fiz nd, mas vou-te explicar a teoria, crias uma textbox (invisivel) e defines todas as teclas e vais formando a palavra na textbox, qd a palvra for sair, tens a funçao mais acima pa te fechar o prog.

Melhores cumprimentos,João Lopes***Esta mensagem foi escrita ao abrigo do novo Acordo Ortográfico***

Link to comment
Share on other sites

O que o Cybernavigator diz é uma boa hipótese! Mas, não precisas de adicionar mais nenhum controlo à tua Form1.

Já experimentaste o evento KeyPress da Form?

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

        Dim PalavraGuardada As String = "sair"

        Static OqueEscrever As String

        Static MeuNumeroCaracteres As Integer
        
        OqueEscrever &= e.KeyChar

        MeuNumeroCaracteres += 1


        If OqueEscrever.ToLower = PalavraGuardada Then

            End
          

           ElseIf MeuNumeroCaracteres = 4 Then

            MessageBox.Show("Não escreveu correctamente!")
            MeuNumeroCaracteres = 0
            OqueEscrever = ""


        End If

        


    End Sub
Link to comment
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.