MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Função para desligar o pc (não funciona)

    Compartilhe

    J.Silas
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 97
    Registrado : 31/05/2013

    [Resolvido]Função para desligar o pc (não funciona)

    Mensagem  J.Silas em Qua 04 Jun 2014, 22:15

    ola pessoa estou aqui mais uma vez com uma duvida tenho certeza que os colegas irão me ajuda muito
    essa função abaixo que ache em um site seria para desligar o pc mais em ves disso ele apenas fa fogoof do sistema.

    Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As _
       Long, ByVal dwReserved As Long) As Long

    'Public Const EWX_LOGOFF As Long = 0 'Faz Logoff do usuário.
    'Public Const EWX_SHUTDOWN As Long = 1 'Desligar o compitador.
    'Public Const EWX_REBOOT As Long = 2 'Reiniciar o computador.
    'Public Const EWX_FORCE As Long = 4 'Força a ação desejada.

    'EWX_FORCE = 4 '=> 'Força qualquer aplicação a sair sem perguntar ao usuário para fechá-las.

    'EWX_LOGOFF = 0 '=> Faz o Log off da rede.

    'EWX_POWEROFF = 8 ' =>Desliga o sistema e, se possível, desliga o computador.

    'EWX_REBOOT = 2 '=> Realiza um reboot completo do sistema.

    'EWX_SHUTDOWN = 1 ' => Desliga o sistema.

    Function ShutDownWindows()
       'Isto irá fechar todas as aplicações e desligar o Windows.
       Dim x As Long
         
           x = ExitWindowsEx(EWX_SHUTDOWN, 0)
           Application.Quit acExit
    End Function


    desde já agradeço.

    toyebom
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 820
    Registrado : 18/07/2012

    Função para desligar o pc (não funciona)

    Mensagem  toyebom em Qua 04 Jun 2014, 22:35

    Tenta assim:

    Código:
    'Primeiro adicione um Módulo .BAS no seu programa e coloque a declaração abaixo nele:
    Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
    'Pronto, agora volta para o formulário e coloque o código abaixo num botão de comando ou no evento Form_Click():
    Private Sub Form_Click()
    If MsgBox("Sair do Windows?", 36, "Sair") = 6 Then
    Call ExitWindowsEx(1, 1)
    Else
    Exit Sub
    End If
    End Sub
    'Ao clicar o botão ou o formulário uma MsgBox aparecerá perguntando se você quer desligar o Windows, se você clicar 'Sim' aquela famosa tela 'Seu Computador Já Pode Ser Desligado....' vai aparecer e o computador será desligado. Ao clicar 'Não' nada acontecerá.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.

    J.Silas
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 97
    Registrado : 31/05/2013

    Re: [Resolvido]Função para desligar o pc (não funciona)

    Mensagem  J.Silas em Qua 04 Jun 2014, 22:50

    ola amigo não funcionou OBS: uso o access 2010/2013 e windows 7/8
    fico com uma duvida
    (adicione um Módulo .BAS)
    seria um criar/Modulo?
    pois foi assim que eu fiz e coloquei o nome de MdlDesligar.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2503
    Registrado : 29/06/2012

    Re: [Resolvido]Função para desligar o pc (não funciona)

    Mensagem  Noobezinho em Qui 05 Jun 2014, 03:33

    Dando um pitaco:

    Copie e cole no módulo básico:

    Código:


    Private Declare Function apiExitWindowsEx Lib "User32" _
            Alias "ExitWindowsEx" _
            (ByVal uFlags As Long, ByVal dwReserved As Long) _
            As Long

    Public Const EWX_FORCE = 4      'Forcibly terminates processes
                                    'that do not respond.
    Public Const EWX_LOGOFF = 0     'Terminates processes, then logs off.
    Public Const EWX_SHUTDOWN = 1   'Powers the system off, if possible.
    Public Const EWX_REBOOT = 2     'Reboots the system.



    Public Function SairWindows()
    Beep
       If msgbox("Deseja realmente Desligar o Computador ?", vbQuestion + vbYesNo, "Desligar o Computador") = vbyes Then
          fTerminateWin (1)
       End If

    Function fTerminateWin(lngExitVal As Long)
        fTerminateWin = apiExitWindowsEx(lngExitVal, 0)
    End Function



    Acredito que saiba como chamar a função.

    Abraços

    Noob


    Última edição por Noobezinho em Qui 05 Jun 2014, 16:58, editado 1 vez(es)


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    J.Silas
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 97
    Registrado : 31/05/2013

    Re: [Resolvido]Função para desligar o pc (não funciona)

    Mensagem  J.Silas em Qui 05 Jun 2014, 13:21

    ola amigo a função fTerminateWin (1) não foi definida.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2503
    Registrado : 29/06/2012

    Re: [Resolvido]Função para desligar o pc (não funciona)

    Mensagem  Noobezinho em Qui 05 Jun 2014, 17:00

    Opa

    Não percebi que a função não tinha sido colada.

    Agora já coloquei la junto com a outra, pode conferir.

    Desculpe o vacilo. Embarassed 

    Sou mesmo...

    Noob  rabbit 



    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    J.Silas
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 97
    Registrado : 31/05/2013

    Re: [Resolvido]Função para desligar o pc (não funciona)

    Mensagem  J.Silas em Qui 05 Jun 2014, 20:27

    ola pessoal não consegui.
    a primeira postagem que fiz o logof funcionava só os demais que não funcionava
    OBS utilizo o Windows 8 e no trabalho o 7 mais em nem um dos dois funciona função de desligar.

    toyebom
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 820
    Registrado : 18/07/2012

    Função para desligar o pc (não funciona)

    Mensagem  toyebom em Qui 05 Jun 2014, 20:46

    Ok estive a pesquisar na net, não sei se funciona tenta:

    Código:
    'No módulo:
    Public Declare Function ExitWindowsEx Lib "user32" _
          Alias "ExitWindowsEx" (ByVal uFlags As Long, _
          ByVal dwReserved As Long) As Long

    Public Const EWX_LOGOFF As Long = 0 'Faz Logoff do usuário.
    Public Const EWX_SHUTDOWN As Long = 1 'Desligar o computador.
    Public Const EWX_REBOOT As Long = 2 'Reiniciar o computador.
    Public Const EWX_FORCE As Long = 4 'Força a ação desejada.

    'No evento que você desejar:
    Dim RET as Long
    'P/ fazer logoff do usuário:
    RET = ExitWindowsEx(EWX_LOGOFF, 0)
    'P/ desligar o computador:
    RET = ExitWindowsEx(EWX_SHUTDOWN, 0)
    'P/ reiniciar o computador
    RET = ExitWindowsEx(EWX_REBOOT, 0)

    'Se você quizer "forçar" a ação a ser executada, faça
    'da seguinte maneira:

    'P/ fazer logon com outro usuário:
    RET = ExitWindowsEx(EWX_FORCE Or EWX_LOGOFF, 0)
    'P/ desligar o computador:
    RET = ExitWindowsEx(EWX_FORCE Or EWX_SHUTDOWN, 0)
    'P/ reiniciar o computador
    RET = ExitWindowsEx(EWX_FORCE Or EWX_REBOOT, 0)
    'P/ reiniciar o computador
    RET = ExitWindowsEx(EWX_FORCE Or EWX_REBOOT, 0)

    [Você precisa estar registrado e conectado para ver este link.]

    Ou

    Código:
    Para desligar computador localmente:
    Public Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

    Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
    Private Sub Form_Load()
    Form1.Visible = False
    If MsgBox("Deseja Realmente Desligar o Computador", vbYesNo, "Encerrar Windows") = vbYes Then
    Call ExitWindowsEx(1, 0)
    Else
    End
    End If
    End Sub

    [Você precisa estar registrado e conectado para ver este link.]

    OU

    Código:
    Durante um processo de instalação ou quando é realizada alguma alteração no sistema pode ser interessante rebootar o micro pela aplicação. Para isso o Vb pode acessar uma API do Windows.

    Precisamos declarar a API em um módulo. Veja :

    Option Explicit
    Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
    Public Const EWX_SHUTDOWN = 1
    Public Const EWX_REBOOT = 2
    Public Const EWX_LOGOFF = 0

    Como exemplo, coloque em um form uma textbox e um botão. Inclua o seguinte código no botão :

    Private Sub Command1_Click()
    Dim Variav
    Select Case Text1
    Case "0"
    If MsgBox("Deseja fazer Logoff agora?", vbExclamation + vbSystemModal + vbYesNo) = vbYes Then
    Variav = ExitWindowsEx(EWX_LOGOFF, 0)
    End If
    Case "1"
    If MsgBox("Deseja desligar o Computador agora?", vbExclamation + vbSystemModal + vbYesNo) = vbYes Then
    Variav = ExitWindowsEx(EWX_SHUTDOWN, 0)
    End If
    Case "2"
    If MsgBox("Deseja reiniciar o Windows agora?", vbExclamation + vbSystemModal + vbYesNo) = vbYes Then
    Variav = ExitWindowsEx(EWX_REBOOT, 0)
    End If
    Case Else
    MsgBox Label1
    Exit Sub
    End Select
    End Sub

    Se você digitar 0 na textbox e clicar no botão será feito logoff, se digitar 1 o micro será desligado e se digitar 2 será rebotado. O código no botão pergunta se o usuário desejar mesmo realizar esta tarefa. (sugiro salvar o código antes de executar).

    OU

    Código:
    Private Const EWX_SHUTDOWN As Long = 1
        Private Const EWX_REBOOT As Long = 2
        Private Const EWX_FORCE As Long = 4
        Private Const EWX_FORCEIFHUNG As Long = 16
        Private Const EWX_POWEROFF As Long = 8

    'SHUTDOWN
          ExitWindowsEx (EWX_SHUTDOWN Or EWX_FORCEIFHUNG), &HFFFF
    'Reboot
          ExitWindowsEx (EWX_REBOOT Or EWX_FORCEIFHUNG), &HFFFF
    'Power off
          ExitWindowsEx (EWX_POWEROFF Or EWX_FORCEIFHUNG), &HFFFF

    [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.

    toyebom
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 820
    Registrado : 18/07/2012

    Função para desligar o pc (não funciona)

    Mensagem  toyebom em Qui 05 Jun 2014, 20:49

    Vê também aqui, este deve funcionar:

    [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2503
    Registrado : 29/06/2012

    Re: [Resolvido]Função para desligar o pc (não funciona)

    Mensagem  Noobezinho em Sex 06 Jun 2014, 12:39

    Olá José Silas

    Como pode ter percebido, todos os exemplos dados aqui usam a mesma api do window.
    Portanto, acredito que a mesma deve ter sido desativada ou modificada.

    Pesquisando na web, consegui dessa maneira:

    Abra o bloco de notas e digite:

    shutdown /-s

    E salve como Shut.bat  ( arquivo de lote .bat)
    Salve-o na mesma pasta do teu aplicativo.

    Depois copie e cole em um módulo:

    Código:


    Function ShellWin_Exit() As Integer
    Dim ret
             ret = Shell(Application.CurrentProject.Path & "\Shut.bat")
            
    End Function


    Abraços


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    J.Silas
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 97
    Registrado : 31/05/2013

    Re: [Resolvido]Função para desligar o pc (não funciona)

    Mensagem  J.Silas em Sex 06 Jun 2014, 15:38

    ola Noob ja tenho um exemplo com arquivo Bat e funciona só acho que via vba ficaria mais organizado pois evitaria criar vários arquivos bat.
    mais agradeço a colaboração dos colegas e vou continuar na luta por uma solução via vba.
    obrigado a todos

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8907
    Registrado : 04/11/2009

    Re: [Resolvido]Função para desligar o pc (não funciona)

    Mensagem  JPaulo em Sex 06 Jun 2014, 18:04

    Este meu topico de 2009 serve ?

    [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    J.Silas
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 97
    Registrado : 31/05/2013

    Re: [Resolvido]Função para desligar o pc (não funciona)

    Mensagem  J.Silas em Sex 06 Jun 2014, 22:51

    J Paulo funcionou perfeitamente só que o botão logof que não funcionou só pisca e nada acontece mais muito obrigado vai funcionar perfeitamente no meu projeto pois na primeira msg que poste o logof funciona.
    muito obrigado a todos do fórum.

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8907
    Registrado : 04/11/2009

    Re: [Resolvido]Função para desligar o pc (não funciona)

    Mensagem  JPaulo em Sab 07 Jun 2014, 12:54

    Obrigado pelo retorno, o fórum agradece.


    .................................................................................
    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

      Data/hora atual: Qua 07 Dez 2016, 18:15