COMO ATIVAR PROTECAO DE TELA EM PROJETOS VB6
Bom galera,
Minha dúvida é a seguinte... gostaria de implementar em um projeto de VB6 uma proteção de telas, mas não sei como fazer o temporizador para ativar a proteção de telas... acho que tenho que verificar por um determinado tempo o movimento do mouse e a utilização do teclado... mas não estou sabendo como fazer isso.
Alguém poderia me ajudar???
Obrigado a todos.
Minha dúvida é a seguinte... gostaria de implementar em um projeto de VB6 uma proteção de telas, mas não sei como fazer o temporizador para ativar a proteção de telas... acho que tenho que verificar por um determinado tempo o movimento do mouse e a utilização do teclado... mas não estou sabendo como fazer isso.
Alguém poderia me ajudar???
Obrigado a todos.
Veja como eu consegui isto,
[ô] este código funciona da seguinte maneira após 5 minutos de inatividade
[ô] em seu programa a tela de LOGIN aparece, e se você voltar a usar o PC
[ô] antes desse tempo nada acontece, estilo proteção de tela do windows
[ô] quando o computador está ativo
no form insira o seguinte código
[ô] no general do form
Dim contar as Integer
Private Sub Form_Load()
Contar = 1
Timer1.Interval = 60000
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
If contar = 5 Then [ô] o cinco indica o tempo de inatividade para chamar o login
Unload me
Frm_login.Show [ô] Substitua pelo o nome de seu Form de Login ou outro
Else
contar = contar + 1
End If
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
contar = 1
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, _
Y As Single)
contar = 1
End Sub
[ô] este código funciona da seguinte maneira após 5 minutos de inatividade
[ô] em seu programa a tela de LOGIN aparece, e se você voltar a usar o PC
[ô] antes desse tempo nada acontece, estilo proteção de tela do windows
[ô] quando o computador está ativo
no form insira o seguinte código
[ô] no general do form
Dim contar as Integer
Private Sub Form_Load()
Contar = 1
Timer1.Interval = 60000
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
If contar = 5 Then [ô] o cinco indica o tempo de inatividade para chamar o login
Unload me
Frm_login.Show [ô] Substitua pelo o nome de seu Form de Login ou outro
Else
contar = contar + 1
End If
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
contar = 1
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, _
Y As Single)
contar = 1
End Sub
nesse exemplo que fis para você num requer muito do seu aplicativo simplesmente utilizamos os recursos originais do windows
Private Sub Form_Load()
[ô] ativa opção de protetor de tela
RegWrite [Ô]HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive[Ô], [Ô]1[Ô]
[ô] define o tempo que o protetor de tela sera exibido no caso ai esta com 120 segundos
RegWrite [Ô]HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveTimeOut[Ô], [Ô]120[Ô]
[ô]infoma oquivo de protetor de tela logon.scr
RegWrite [Ô]HKEY_CURRENT_USER\Control Panel\Desktop\SCRNSAVE.EXE[Ô], [Ô]E:\WINDOWS\system32\logon.scr[Ô]
End Sub
Não sei o que fiz de errado mas nas duas opções que tentei não funcionou...
Estou colocando este código em MDI form, até reduzi o tempo para a execução dos comandos, mas não deu certo...
Segue o código para mehlor vizualização...
Tentei esse e não funcionou...
Private Sub Form_Load()
[ô] ativa opção de protetor de tela
RegWrite [Ô]HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive[Ô], [Ô]1[Ô]
[ô] define o tempo que o protetor de tela sera exibido no caso ai esta com 5 segundos
RegWrite [Ô]HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveTimeOut[Ô], [Ô]5[Ô]
[ô] infoma oquivo de protetor de tela logon.scr
RegWrite [Ô]HKEY_CURRENT_USER\Control Panel\Desktop\SCRNSAVE.EXE[Ô], [Ô]C:\WINDOWS\system32\logon.scr[Ô]
End Sub
Tentei este outro e também não tive sucesso...
[ô] No general
Dim contar As Integer
Private Sub Form_Load()
saida = 1
contar = 1
Timer1.Interval = 60000
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
If contar = 1 Then
Shell (App.Path & [Ô]\protecao.scr[Ô])
End If
If contar = 3 Then [ô] o cinco indica o tempo de inatividade para chamar o login
Unload Me
frm_login.Show [ô] Substitua pelo o nome de seu Form de Login ou outro
Else
contar = contar + 1
End If
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
contar = 1
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
contar = 1
StatusBar1.Panels(2).Text = [Ô][Ô] [ô] limpa a informação no painel da Statusbar
End Sub
Para lembrar estou colocando estes códigos em um MDI Form e chamo forms childs através dele e mesmo com ou sem forms child não funcionou.
Obrigado pela ajuda galera, mas ainda não está rodando.
Estou colocando este código em MDI form, até reduzi o tempo para a execução dos comandos, mas não deu certo...
Segue o código para mehlor vizualização...
Tentei esse e não funcionou...
Private Sub Form_Load()
[ô] ativa opção de protetor de tela
RegWrite [Ô]HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive[Ô], [Ô]1[Ô]
[ô] define o tempo que o protetor de tela sera exibido no caso ai esta com 5 segundos
RegWrite [Ô]HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveTimeOut[Ô], [Ô]5[Ô]
[ô] infoma oquivo de protetor de tela logon.scr
RegWrite [Ô]HKEY_CURRENT_USER\Control Panel\Desktop\SCRNSAVE.EXE[Ô], [Ô]C:\WINDOWS\system32\logon.scr[Ô]
End Sub
Tentei este outro e também não tive sucesso...
[ô] No general
Dim contar As Integer
Private Sub Form_Load()
saida = 1
contar = 1
Timer1.Interval = 60000
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
If contar = 1 Then
Shell (App.Path & [Ô]\protecao.scr[Ô])
End If
If contar = 3 Then [ô] o cinco indica o tempo de inatividade para chamar o login
Unload Me
frm_login.Show [ô] Substitua pelo o nome de seu Form de Login ou outro
Else
contar = contar + 1
End If
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
contar = 1
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
contar = 1
StatusBar1.Panels(2).Text = [Ô][Ô] [ô] limpa a informação no painel da Statusbar
End Sub
Para lembrar estou colocando estes códigos em um MDI Form e chamo forms childs através dele e mesmo com ou sem forms child não funcionou.
Obrigado pela ajuda galera, mas ainda não está rodando.
mudou o interval do timer para 1 esquecia penas disto
você baixo o exemplo e testo ?
Marcelo,
Eu ajustei manualmente o interval do timer e deletei a linha do form que atribui o intervalo no form load e funcionou...
Muito obrigado.
Mas eu gostaria de chamar antes do login a proteção de tela.... se não for pedir muito vc saberia como fazer isso??
Desde já agradeço.
Eu ajustei manualmente o interval do timer e deletei a linha do form que atribui o intervalo no form load e funcionou...
Muito obrigado.
Mas eu gostaria de chamar antes do login a proteção de tela.... se não for pedir muito vc saberia como fazer isso??
Desde já agradeço.
JWCELYO
Sim baixei e testei e mesmo assim não funcionou.... estranho fiquei esperando um tempão e a proteção de tela não funfou.
Mas memso assim obrigado.
Sim baixei e testei e mesmo assim não funcionou.... estranho fiquei esperando um tempão e a proteção de tela não funfou.
Mas memso assim obrigado.
então vamos lá
no general cole
Private Declare Function SendMessage Lib [Ô]user32[Ô] Alias [Ô]SendMessageA[Ô] (ByVal hWnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Const WM_SYSCOMMAND = &H112&
Const SC_SCREENSAVE = &HF140&
e altere esta parte do código
Private Sub Timer1_Timer()
Dim result As Long
If contar = 5 Then [ô] o cinco indica o tempo de inatividade para chamar o login
result = SendMessage(Me.hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)
Else
contar = contar + 1
End If
End Sub
no general cole
Private Declare Function SendMessage Lib [Ô]user32[Ô] Alias [Ô]SendMessageA[Ô] (ByVal hWnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Const WM_SYSCOMMAND = &H112&
Const SC_SCREENSAVE = &HF140&
e altere esta parte do código
Private Sub Timer1_Timer()
Dim result As Long
If contar = 5 Then [ô] o cinco indica o tempo de inatividade para chamar o login
result = SendMessage(Me.hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)
Else
contar = contar + 1
End If
End Sub
Marcelo,
funcionou beleza, mas só tive que fazer um ajuste para chamar depois o form do login senão ele fica somente na proteção de tela:
Private Sub Timer1_Timer()
Dim result As Long
If contar = 5 Then [ô] o cinco indica o tempo de inatividade para chamar o login
result = SendMessage(Me.hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)
contar = contar + 1
Else
contar = contar + 1
End If
End Sub
Muito obrigado mesmo.
funcionou beleza, mas só tive que fazer um ajuste para chamar depois o form do login senão ele fica somente na proteção de tela:
Private Sub Timer1_Timer()
Dim result As Long
If contar = 5 Then [ô] o cinco indica o tempo de inatividade para chamar o login
result = SendMessage(Me.hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)
contar = contar + 1
Else
contar = contar + 1
End If
End Sub
Muito obrigado mesmo.
Tópico encerrado , respostas não são mais permitidas