none
Continuar Execução em Me.Hide() RRS feed

  • Pergunta

  • Bom Dia!

    Tenho Uma Duvida Sobre o Me.Hide...

    Estou Fazendo Uma Especie de Keylogger, Mais Para Passar o Tempo, E, a Questão é Que no Meu Programa Existe um Timer, Onde Dispara a Cada X Minutos Para Enviar Um E-mail Para a Conta da Pessoa Desejada, Acontece Que, Quero Colocar Este Programa na Bandeja(Ao Lado do Relogio), Mais, Quando Uso o Me.Hide a Aplicação Congela, Fazendo Com Que o Timer Pare e Volte a Funcionar Apenas Quando Ele Fica Visivel Novamente... Acontece Apenas Quando o Icone Fica na Bandeja, Pois Minimizado Ele Funciona Normalmente...

    E Acontece Que, Toda Vez Que Ele Receber Double-Click, Abrirá Outro Form(Form2) Onde Irá Pedir Uma Senha, A Mesma Que é Inserida em Uma TextBox no Programa...

    Codigo da Bandeja

    Private Sub Form1_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize
            If (Me.WindowState = FormWindowState.Minimized) Then
                Me.Hide()
            End If
        End Sub

    ---------------------------------------------------------------------------------------------------------

    Private Sub NotifyIcon1_MouseDoubleClick(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
            Form2.Show()
        End Sub

    Resumindo, O Me.Hide Congela Minha Aplicação, Queria Que Mesmo na Bandeja Minha Aplicação Continuasse a Executar (Timer)

    Desde Ja Agradeço

    (Vale Lembrar Que Este Programa Keylogger Não é Para Uso Comercial e Nem Pessoal, Apenas Um Teste de Estágio Onde Trabalho)

    terça-feira, 15 de janeiro de 2013 12:01

Respostas

  • Para esconder o Form sem congelar a aplicação faça assim:

    Private Sub Form1_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize
            If (Me.WindowState = FormWindowState.Minimized) Then
                Me.Visible = False
            End If
    End Sub


    Herbert Lausmann

    Gerenciador de Logins

    terça-feira, 15 de janeiro de 2013 15:10
  • Pra você averiguar se o timer está funcionando realmente ou se é um problema em outra parte do código coloque isso no evento Tick do Timer:

    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
            MsgBox("Tick")
    End Sub

    Poderia postar o código do seu form para eu dar uma olhada?...


    Herbert Lausmann

    Gerenciador de Logins

    quarta-feira, 16 de janeiro de 2013 14:41

Todas as Respostas

  • Para esconder o Form sem congelar a aplicação faça assim:

    Private Sub Form1_Resize(sender As Object, e As System.EventArgs) Handles Me.Resize
            If (Me.WindowState = FormWindowState.Minimized) Then
                Me.Visible = False
            End If
    End Sub


    Herbert Lausmann

    Gerenciador de Logins

    terça-feira, 15 de janeiro de 2013 15:10
  • Apliquei Exatamente Como Me Passou, Mais Continua Não Executando o Timer...
    Existe Dois Botões Que Iniciam e Param o Timer Dentro do Programa:

    Private Sub Button5_Click(sender As System.Object, e As System.EventArgs) Handles Button5.Click
            'Botão Iniciar - Ativa Button4_Click
            Timer1.Start()
            Button6.Enabled = True
            Button5.Enabled = False
            Timer1.Interval = TextBox6.Text * 60000
        End Sub

        Private Sub Button6_Click(sender As System.Object, e As System.EventArgs) Handles Button6.Click
            'Botão Parar
            Timer1.Stop()
            Button5.Enabled = True
            Button6.Enabled = False
            Label9.Text = "Desconectado"
        End Sub

    -----------------------------------------------------------------------------------------------------

    Será Algum Erro Neles? Seria Mais Facil Colocar o Comando "Timer1.Stat()" em Form1_Resize?


    Ah, E Coloquei Para Ativar o Botão Iniciar(button5_Click) no Timer1_Tick

    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
            'Timer
            Button4.PerformClick()
        End Sub

    -------------------------------------------------------------------------------------------------------

    Existe Outra Forma de Iniciar o Timer?!

    • Editado Ewerton Lourenço quarta-feira, 16 de janeiro de 2013 13:08 Adicionar Informação
    quarta-feira, 16 de janeiro de 2013 13:04
  • Pra você averiguar se o timer está funcionando realmente ou se é um problema em outra parte do código coloque isso no evento Tick do Timer:

    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
            MsgBox("Tick")
    End Sub

    Poderia postar o código do seu form para eu dar uma olhada?...


    Herbert Lausmann

    Gerenciador de Logins

    quarta-feira, 16 de janeiro de 2013 14:41
  • Creio Que Eu Estava Fazendo Errado!
    Depois Que Me Mandou a Ideia do MsgBox("Tick"), Percebi Que Alguma Coisa Estava Errada, Pois Estava Chamando no Timer1_Tick o Button4.PerformClick()...

    Decidi Copiar o Comando do Button4 e Colar em Timer1...

    Dim Client As SmtpClient
            Dim Msg As MailMessage

            Try

                Client = New SmtpClient()
                Msg = New MailMessage()

                Msg.Body = TextBox1.Text
                Msg.From = New MailAddress(TextBox2.Text)
                Msg.Subject = DateTime.Now
                Msg.To.Add(TextBox2.Text)

                Client.Credentials = New NetworkCredential(TextBox2.Text, TextBox3.Text)
                Client.Port = TextBox4.Text
                Client.Host = TextBox5.Text
                Client.EnableSsl = True

                Client.Send(Msg)

                Label9.Text = "Conectado"

            Catch

                Label9.Text = "Erro de Conexão"
                Return

            End Try
            TextBox1.Clear()
            Label6.Text = Msg.Subject

    Agora Esta Funcionando Perfeitamente!
    quinta-feira, 17 de janeiro de 2013 12:27