AGENDAR DESLIGAMENTO DO WINDOWS

EVANDRO734 06/01/2016 17:17:19
#455800
Estou tentando criar um algoritmo que ao colocar o valor de espera em uma [Ô]TextBox[Ô] e logo em seguida escolher [Ô]Desligar, Reiniciar e LogOff[Ô] o botão selecionado realize tal tarefa em determinado tempo digitado pelo usuário.
O Problema é que quando coloca um valor na [Ô]TextBox[Ô] (Ex. Desligar em 3600seg ou seja uma hora) ele desliga automaticamente, ignorando o valor inserido.

<Código Fonte>

Public Class FrmPrincipal
Dim tempo As Integer

Dim desligar As String = ([Ô]shutdown /s /t[Ô] & (tempo))
Dim reiniciar As String = ([Ô]shutdown /r /t[Ô] & (tempo))
Dim logoff As String = ([Ô]shutdown /l /t[Ô] & (tempo))

Private Sub btlogoff_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btlogoff.Click
If txttempo.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Digite o TEMPO determinado em SEGUNDOS no campo abaixo![Ô], [Ô]LOGOFF[Ô],MessageBoxButtons.OK ,MessageBoxIcon.Information )
Else : tempo = txttempo.Text
Shell([Ô]cmd.exe /c[Ô] & logoff)
End If
End Sub

Private Sub btdesligar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btdesligar.Click
If txttempo.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Digite o TEMPO determinado em SEGUNDOS no campo abaixo![Ô], [Ô]DESLIGAR[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
Else : tempo = txttempo.Text
Shell([Ô]cmd.exe /c [Ô] & desligar)
End If
End Sub

Private Sub btreiniciar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btreiniciar.Click
If txttempo.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Digite o TEMPO determinado em SEGUNDOS no campo abaixo![Ô], [Ô]REINICIAR[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
Else : tempo = txttempo.Text
Shell([Ô]cmd.exe /c [Ô] & reiniciar)
End If
End Sub

Private Sub btcancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btcancelar.Click
System.Diagnostics.Process.Start([Ô]shutdown[Ô], [Ô]-a[Ô])
End Sub
Endclass


NICKOSOFT 06/01/2016 17:49:03
#455803
Resposta escolhida
melhor procurar entender timer pra vc fazer isso melhor....
fora q da sem chamar prompt

  
Private Sub btnDesligar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDesligar.Click

[ô]Desliga o Computador

System.Diagnostics.Process.Start([Ô]shutdown[Ô], [Ô]-s -t 00[Ô])

End Sub



Private Sub btnReiniciar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReiniciar.Click

[ô]Reinicia o Computador

System.Diagnostics.Process.Start([Ô]shutdown[Ô], [Ô]-r -t 00[Ô])

End Sub



Private Sub btnLogoff_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogoff.Click

[ô]Faz LogOff no Computador

System.Diagnostics.Process.Start([Ô]shutdown[Ô], [Ô]-l -t 00[Ô])

End Sub

EVANDRO734 06/01/2016 18:00:07
#455804
Eu remontei meu algoritmo tirando as variáveis e colocando pra pegar o valor direto da [Ô]TextBox[Ô], só que o único detalhe é que tem que antes de inserir o valor tem que colocar um espaço para o prompt de comando entender que o valor da textbox é o tempo em que ele irá demorar pra realizar a tarefa.
<Código Fonte>
  Public Class FrmPrincipal

Private Sub btlogoff_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btlogoff.Click
If txttempo.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Digite o TEMPO determinado em SEGUNDOS no campo abaixo![Ô], [Ô]LOGOFF[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
[ô]Else : System.Diagnostics.Process.Start([Ô]shutdown[Ô], [Ô]-l -t[Ô] & ([Ô] [Ô]) & (txttempo.Text))
Else : System.Diagnostics.Process.Start([Ô]shutdown[Ô], [Ô]-l -t[Ô] & (txttempo.Text))
End If
End Sub

Private Sub btdesligar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btdesligar.Click
If txttempo.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Digite o TEMPO determinado em SEGUNDOS no campo abaixo![Ô], [Ô]DESLIGAR[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
Else : System.Diagnostics.Process.Start([Ô]shutdown[Ô], [Ô]-s -t[Ô] & (txttempo.Text))
End If
End Sub

Private Sub btreiniciar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btreiniciar.Click
If txttempo.Text = [Ô][Ô] Then
MessageBox.Show([Ô]Digite o TEMPO determinado em SEGUNDOS no campo abaixo![Ô], [Ô]REINICIAR[Ô], MessageBoxButtons.OK, MessageBoxIcon.Information)
Else : System.Diagnostics.Process.Start([Ô]shutdown[Ô], [Ô]-r -t[Ô] & (txttempo.Text))
End If
End Sub
End class
NICKOSOFT 06/01/2016 19:37:11
#455808
  
System.Diagnostics.Process.Start([Ô]shutdown[Ô], [Ô]-r -t [Ô] & cint(txttempo.texto) & [Ô][Ô][Ô])

não me recordo se é assim q vc vai fechar a aspas, veja q vc fecha no final após o valor.....
mas tem outras formas de vc montar uma string, se não me engano stringbuilder.append vc pode ir adicionando coisas a ela, e depois passa uma coisa so ao comando....

de qq forma se fosse eu manteria o comando padrão System.Diagnostics.Process.Start([Ô]shutdown[Ô], [Ô]-l -t 00[Ô]) e apenas o dispararia qnd o tempo tivesse passado através do timer....
NILSONTRES 06/01/2016 20:09:05
#455810
Esta em vb6, mas roda em tudo.
Tópico encerrado , respostas não são mais permitidas