COMO DESLIGAR COMPUTADOR XP/WIN2K COM HORA

HENRYKAUKAU 02/06/2007 15:17:52
#219470
Boa tarde galera.

Aqui estou eu de novo pedindo ajuda :)

Após muita pesquisa no forum verifiquei não encontrar o que preciso. Por isso aqui vai:

Preciso de uma ajuda de quem é mais experiente..

Estou querendo construir um progama básico com algumas funçoes de desligar o pc completamente e se possivel forçando-o com horario determinado pelo administrador.

Como:
Gostia de ter a tela de inclusão da hora determinada.
Ao se ligar o micro o programa já inicializa a contagem do tempo silenciosamente.

Gostaria que aparecesse uma mensagem na tela do usuário avisnado que tem 10 minutos para salvar os trabalhos que depois o sistema irá se auto-desligar.

Mas para complementar gostaria de que 5 minutos antes do tempo final a mesma mensagem aparecesse ao usuário e que aparecesse no canto superior esquerdo da tela um relógio contando o tempo decrescente de 05 minutos até 0 minutos e após isso aparecer uma tela novamente informando que tem mais 30 segundos e após isso desligar o micro completamente.

é isso aqui que preciso.

Estou anexando uma parte de um código que funciona. Se ajudar...

Se tiver aguém que possa me dar uma força agradeço.

Até mais galera.
ALEXANDREMOTA 02/06/2007 16:53:37
#219475
é necessário fazer um form com um campo para digitar a hora, colocar um botão para ativar o timer e um timer. O timer será ativado pelo botão no intervalo 1.O código do timer será:

If Time = Text1.Text Then
Código que desliga o pc
End If

Se for necessário ocultar o programa, coloque a propriedade visible = false. Não feche o programa para que na determinada hora o pc desligue.
Qualquer dúvida poste aqui de novo.
HENRYKAUKAU 02/06/2007 19:14:43
#219481
Buenas

Não entendi o exemplo do Alex.
A dúvida ainda continua.

Mas grato pela dica na mesma.
ESLEYSANCHES 02/06/2007 20:38:30
#219488
Amigo use um exemplo meu mesmo ... tem aqui no site, segue o link abaixo:

http://www.vbmania.com.br/vbmania/vbmdetail.php?varID=4150&TxtSearch=desligar%20hora&CmbSort=&varPagina=1

Com certeza vai te ajudar !!
Abraços !!
HENRYKAUKAU 02/06/2007 21:24:22
#219494
A dica é boa e funciona do jeito que quero... mas estou com um problema ou o meu cerebro não está conseguindo pensar.

Não estou conseguindo colocar um timer que me informe que falta 10 minutos para desligar o pc e nem o timer para me informar que faltam 5 minutos e colocar o relogio em contagem decrescente e por último a mensagem que tem 30 segundos antes do sistema se desligar.

vou estudar o código do Esley, para ver se chego a algum lado.

Grato por agora
HENRYKAUKAU 02/06/2007 22:40:46
#219497
Aqui estou ainda batendo com a cabeça.

Consegui fazer uma parte do que eu queria... segue o código.

Private Sub Command1_Click()
Timer1.Interval = 1000
Timer2.Interval = 1000
Timer3.Interval = 1000
MsgBox ("Seu PC será desligado na data e hora prevista"), vbInformation
'Me.Hide
End Sub


Private Sub Command2_Click()
End
End Sub


Private Sub Form_Load()
Text1.Text = Time
Text2.Text = Time
Text3.Text = Time
End Sub


Private Sub Timer1_Timer()

If Text1.Text = Time Then
MsgBox ("falta 10 minutos")


End If
End Sub


Private Sub Timer2_Timer()
If Text2.Text = Time Then
MsgBox ("falta 5 minutos")
End If
End Sub


Private Sub Timer3_Timer()
If Text3.Text = Time Then
MsgBox ("Fim")
'Dim cExitWindows As New clsExitWindows
'cExitWindows.ExitWindows WE_LOGOFF
End If
End Sub


Só que me deparei com um outro problema.
Quando inicio o programa as TEXT ficam com a hora do sistem, mas na verdade eu queria que elas ficassem com o horario que quisesse automaticamente... tentei fazer isso, mas não funcionou...

Alguém tem alguma ideia?

O codigo acima chama a mensagem no tempo defenido por mim em cada TEXT.

Grato
ALEXANDREMOTA 03/06/2007 00:09:25
#219498
Você gostaria q elas ficassem com a hora que você programou??
HENRYKAUKAU 03/06/2007 02:16:21
#219501
Boa noite Alex

Estou querendo que cando se liga o micro o programa rode em silencio e desligue na hora programada previamente pelo administrador, e que uma vez progrmamado não seja necessário programar todos os dias, mas quando for necessário alterar o horario.

Tem jeito.

Estou à horas batendo com a cabeça no assunto... até já consegui chamar todos os form e count downs necessários.

Att
ALEXANDREMOTA 03/06/2007 12:44:31
#219518
Grava o horário em um arquivo INI e coloca no form_load do formulário o código para carregar os dados do INI. Tbm coloca um atalho para o programa na pasta Iniciar/Programas/Iniciar. Se não entendeu deixa que eu vou fazer um exemplo aqui e vou postar para q vc possa entender.
HENRYKAUKAU 03/06/2007 14:38:02
#219522
Alex boa tarde.

Se puder postar o exemplo para mim eu agradeço, pois não entendi muito bem o funiconamento do negocio como você falou.

Mas desde já grato pela dica.

HENRYKAUKAU 03/06/2007 16:16:46
#219526
boa tarde VBmaniacos

Aqui estou eu batendo com a cabeça...

Segui a dica do alex...
Private Sub Form_Load()
Text1.Text = LeEntradaPrivIni("Parametro1", "Texto", "", App.Path & "\INI.INI")
'Text2.Text = Time
'Text3.Text = Time
End Sub


até aqui tudo bem, os valores aparecem no caso na TEXT1, mas o programa não chama a função no tempo marcado, conforme abaixo:
Private Sub Timer1_Timer()

If Text1.Text = Time Then
MsgBox ("falta 10 minutos")
End If

Ainda criei o modulo conforme é necessário, mas nada:
' declares para ler e gravar arquivo INI
Declare Function GravaEntradaPrivIni Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
Declare Function apiLeEntradaPrivIni Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long, _
ByVal lpFileName As String) As Long
Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" _
(ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer _
As String, ByVal _
nVolumeNameSize As Long, lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, lpFileSystemFlags As Long, _
ByVal lpFileSystemNameBuffer As String, _
ByVal nFileSystemNameSize As Long) As Long

[c]Sub GravaCacheIni(NomeDoINI As String)
Dim ret As Integer
ret = GravaEntradaPrivIni(0&, 0&, 0&, NomeDoINI)
End Sub


Function LeEntradaPrivIni(Secao As String, Entrada As String, _
ByVal ValorDefault As String, NomeDoINI As String) As String
Dim temp As String * 255
Dim ret As Long
ret = apiLeEntradaPrivIni(Secao, Entrada, ValorDefault, _
temp, Len(temp), NomeDoINI)
If ret Then
LeEntradaPrivIni = Left$(temp, ret)
End If
End Function


Tem alguém por aí para me tirar dessa??? Help ME

Tanks all
End Sub
Página 1 de 3 [26 registro(s)]
Tópico encerrado , respostas não são mais permitidas