O valor deste artigo não está na solução em si, mas em um lembrete de como resolver problemas simples rapidamente.
Mas se você precisar de uma solução simples, por favor:
Salve essas linhas no CMD e, após iniciar em 20 minutos (1200 segundos), o computador entrará no modo de hibernação. No total, o programa ocupou 73 bytes :
ping 127.0.0.1 -n 1201 > nul
rundll32 powrprof.dll,SetSuspendState 0,1,0
Mas se você só precisar desligá-lo , tudo ficará ainda mais curto, ou seja, 47 bytes . Apenas a segunda linha terá a seguinte aparência:
shutdown -s -t 00
Eu uso isso antes de ir para a cama, incluindo minha rádio online favorita "para o sono vir" também na linha de comando, que será discutida no corte.
Quem ainda está curioso, por favor, embaixo do gato. Links para scripts prontos no final do artigo.
Na maior parte, tudo que é novo é bem esquecido, velho.
Primeiro, vamos ver o que essas linhas fazem:
Fazemos o ping de um endereço IP que está sempre disponível (a menos que seu firewall esteja configurado "sofisticado"). O intervalo padrão é 1000 ms = 1 segundo. A opção -n define o número de repetições de 20 minutos x 60 segundos = 1200 + 1 (já que o primeiro ping é retornado em menos de 1 ms). E a construção > nul informa ao interpretador que a saída padrão será enviada para nul a fim de eliminar a saída desnecessária na tela.
ping 127.0.0.1 -n 1201 > nul
O programa rundll32.exe é chamado para executar uma rotina DLL. Nesse caso, SetSuspendState com os parâmetros de que precisamos. Descrição detalhada no MSDN .
rundll32 powrprof.dll,SetSuspendState 0,1,0
Deve-se observar que se você habilitou o modo de hibernação híbrido ( Hibernar ), ele entrará nesse modo. Você pode desativá-lo executando o seguinte como administrador:
powercfg -hibernate off
Existem mais alguns usos no spoiler, por exemplo ...
Winamp .
(WIN + L).
(Hibernate).
.
( ).
.
.
.
.
, WinAPI .
start winamp http://cast.loungefm.com.ua:8000/acoustic128
(WIN + L).
rundll32.exe User32.dll,LockWorkStation
(Hibernate).
rundll32.exe PowrProf.dll,SetSuspendState
.
shutdown.exe -r -t 00
( ).
rundll32 user32.dll,SwapMouseButton
.
rundll32 shell32.dll,Control_RunDLL main.cpl,@0,1
.
rundll32 user,SetCursorPos
.
rundll32 user,CascadeChildWindows
.
rundll32 user,TileChildWindows
, WinAPI .
Existe uma expressão conhecida que muitas pessoas gostam:
A preguiça é o motor do progresso.
Um pouco de história:
Em 2003, um programa simples foi escrito às pressas para desligar o PC por cronômetro. Eu mesmo o escrevi, porque naquela época não tinha nenhum programador familiar e acesso à Internet. Tenho certeza de que muitos dos mesmos "programadores domésticos" que compraram ou cortaram discos do MSDN estudaram a programação do Windows a noite toda. Na ocasião em que escrevi o artigo, abri-o em um arquivo antigo no PC de meus pais. Ela parecia simples, mas cumpriu sua tarefa. No fim das contas, mesmo agora vários de meus amigos o usam.
Não me lembro no que estava escrito (VC, VB, Delphi ou Assembler). Seu tamanho também não era grande, mas ainda assim 16166 contra 47 bytes não podem ser comparados.
E, alguns dias atrás, quando precisei da mesma funcionalidade, comecei a procurar um software semelhante. Imagine minha decepção quando encontrei um monte de programas em média de 1,1 MB a monstros enormes de 15,2 MB de tamanho. Naturalmente, minha consciência não me permitiu lançar essa heresia nem mesmo na caixa de areia. Percebendo que preciso de um atraso de execução de 20 minutos e chamando apenas um procedimento, lembrei-me do rundll32.exe , entrei na Internet e não me enganei. Como resultado, a solução foi encontrada em 1 minuto.
Moralidade:
Freqüentemente, não precisamos de software de terceiros para resolver tarefas simples. Basta ir a um buscador e encontrar uma solução simples para o problema, que em 98,785% já é de domínio público. Claro, precisamos mencionar outra maneira, para verdadeiros especialistas em TI, acionar a imaginação, ir aos manuais do MSDN e usar a funcionalidade do sistema operacional já pronta. Concordo, é agradável usar soluções simples e elegantes, mas é duplamente mais agradável quando você decide com sua própria mente.
Conforme prometido nos links anteriores:
Scripts para cronômetros de desligamento, inicie o rádio e mude para o modo de hibernação - radio_sleep_scripts.zip
De repente, minha antiga arte ficará interessante - ExitXP.exe
Espero que tenha gostado do meu primeiro post. Eu ficaria feliz em receber comentários e sugestões sobre o artigo. Eu gostaria de ver suas soluções interessantes para problemas semelhantes nos comentários. Obrigado pelo seu tempo e leia até o fim.