image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
RAPHAEL SOARES
RAPHAEL SOARES29/09/2024 10:24
Compartilhe

Usando Python para programar o PC para desligar sozinho

    Olá! Neste artigo eu disponibilizo dois scripts Python que faz seu o PC ser programado para desligar sozinho e com opções de tempo pré-programadas para desligá-lo.

    O 1º script possui interface gráfica e o segundo não.

    Para você utilizar ambos os scripts você tem que ter instalado o Python no seu computador e abrir o arquivo com o Python, conforme demonstrado abaixo:

    image

    Script com Interface Gráfica

    Nesse script aparecerá uma janela com 9 opções, sendo 8 para você escolher em quanto tempo você quer que o computador desligue e a última para fechar a janela:

    image

    Ao escolher uma das opções, o computador automaticamente irá acessar o prompt de comando e definirá o agendamento para desligar o computador. No final, aparecerá uma tela informando confirmando quando o computador será desligado:

    image

    Script SEM Interface Gráfica

    Nesse script vai aparecer uma lista de opções em em um prompt de comando e, em "Sua escolha", digite o nº de uma das opções desejadas:

    image

    Código-fonte e Download

    Segue abaixo o link dos scripts no GitHub:

    https://github.com/phael8919/desligar_o_computador

    Segue abaixo o código-fonte com interface gráfica:

    import pyautogui as auto
    from tkinter import *
    from tkinter import messagebox
    
    tela = Tk()
    tela.geometry('510x300')
    tela.title('Agendar para desligar o PC')
    
    def desligar(escolha):    
      auto.sleep(2)
      auto.hotkey('win','r')
      
      auto.sleep(2)
      auto.typewrite('cmd')
      
      auto.sleep(2)
      auto.press('enter')
      
      auto.sleep(4)
      auto.typewrite(f'shutdown -s -f -t {escolha}')
      
      auto.sleep(2)
      auto.press('enter')
      
    def btn1():
      return desligar(60)
    
    def btn2():
      return desligar(60*5)
    
    def btn3():
      return desligar(60*10)
    
    def btn4():
      return desligar(60*15)
    
    def btn5():
      return desligar(60*30)
    
    def btn6():
      return desligar(60*60)
    
    def btn7():
      return desligar(60*120)
    
    def btn8():
      return desligar(60*180)
    
    def btn9():
      tela.destroy()    
      
    
    
    rotulo = Label(tela, text="Clique em uma das opções desejadas:", font='Arial 20')
    rotulo.grid(row=1,column=1, pady=20, padx=15, columnspan=3)
    
    botao1 = Button(tela, text='01 Min.', font='Arial 15', command=btn1)
    botao1.grid(row=2,column=1, pady=10, padx=10)
    
    botao2 = Button(tela, text='05 Min.', font='Arial 15', command=btn2)
    botao2.grid(row=2,column=2, pady=10, padx=10)
    
    botao3 = Button(tela, text='10 Min.', font='Arial 15', command=btn3)
    botao3.grid(row=2,column=3, pady=10, padx=10)
    
    botao4 = Button(tela, text='15 Min.', font='Arial 15', command=btn4)
    botao4.grid(row=3,column=1, pady=10, padx=10)
    
    botao5 = Button(tela, text='30 Min.', font='Arial 15', command=btn5)
    botao5.grid(row=3,column=2, pady=10, padx=10)
    
    botao6 = Button(tela, text='01 Hor.', font='Arial 15', command=btn6)
    botao6.grid(row=3,column=3, pady=10, padx=10)
    
    botao7 = Button(tela, text='02 Hor.', font='Arial 15', command=btn7)
    botao7.grid(row=4,column=1, pady=10, padx=10)
    
    botao8 = Button(tela, text='03 Hor.', font='Arial 15', command=btn8)
    botao8.grid(row=4,column=2, pady=10, padx=10)
    
    botao9 = Button(tela, text='  Sair.  ', font='Arial 15', command=btn9, fg='red')
    botao9.grid(row=4,column=3, pady=10, padx=10)
              
    
    tela.mainloop() 
    

    Segue abaixo o código sem interface gráfica:

    #Script para agendar o desligamento do computador
    import pyautogui as auto
    
    tempos = {
      1:60,
      2:300,
      3:600,
      4:900,
      5:1800,
      6:3600,
      7:7200,
      8:1080
    }
    
    escolha = int(input(
    """ #### AGENDAR O DESLIGAMENTO DO COMPUTADOR ####
     
      Escolha as opções:
      [1] 1 minuto
      [2] 5 minutos
      [3] 10 minutos
      [4] 15 minutos
      [5] 30 minutos
      [6] 1 Hora
      [7] 2 Horas
      [8] 3 Horas
      [9] Sair
      
    Sua escolha: """))
    
    try:
      if escolha == 9 or escolha not in tempos.keys():
          print('Você escolheu cancelar a execução do script.\nSeu computador não será desligado.')      
      else:
          auto.sleep(2)
          auto.hotkey('win','r')
          
          auto.sleep(2)
          auto.typewrite('cmd')
          
          auto.sleep(2)
          auto.press('enter')
          
          auto.sleep(4)
          auto.typewrite(f'shutdown -s -f -t {tempos[escolha]}')
          
          auto.sleep(2)
          auto.press('enter')
    except:
      print('Você escolheu cancelar a execução do script\nSeu computador não será desligado')
    
    Compartilhe
    Comentários (7)

    RB

    Renata Bezerra - 29/09/2024 14:55

    Muito legal :) Parabéns pelo projeto e obrigada por compartilhar!

    Essa biblioteca para automação é muito legal de explorar.

    No momento, ando fazendo experimentos com o clique na área de trabalho. É mais chatinho kkkk, demoro a acertar!


    Essa é a parte inicial de um dos testes:


    import time

    import pyautogui

    pyautogui.PAUSE = 0.5   # esse comando atribui esse tempo de espera para cada comando pyautogui

    pyautogui.press('win')

    pyautogui.write('chrome')

    pyautogui.press('enter')


    x, y = 1170, 500  # Substitua pelas suas coordenadas

    pyautogui.moveTo(x, y, duration=8)  # Mova para as coordenadas em 1 segundo

    time.sleep(0.5)  # Atraso adicional antes de clicar apenas nos locais onde eu utilizei

    pyautogui.click(x, y)


    continua de acordo com o que deseja fazer na área de trabalho...


    Enfim, seguimos estudando e experimentando possibilidades!



    GV

    Gláuber Vieira - 29/09/2024 12:31

    Show de bola!


    Lincoln Castro
    Lincoln Castro - 29/09/2024 12:29
    Parabéns pelo projeto, show de bola!
    
    Julia Rocha
    Julia Rocha - 29/09/2024 12:05

    Ficou muito legal esse projeto.

    Alex Rabelo
    Alex Rabelo - 29/09/2024 12:03

    Parabéns pelo projeto.

    Raphael Silva
    Raphael Silva - 29/09/2024 11:33

    Top

    KD

    Kaio Dias - 29/09/2024 10:40

    Muito legal o seu projeto. Parabéns