Se você definir seu programa como o shell em vez do explorador, ele será executado automaticamente e o Windows será encerrado quando o programa sair.
De um post que eu fiz em 2001
Copie para c: \ windows. Se você editar c:\windows\system.ini
e alterar
shell=explorer.exe
para
shell=progman.exe
então o seu computador iniciará no modo de interface win3.11.
Dos meus 15 anos desde o último site atualizado link
Sair do Windows
As primeiras três seções são do Tweak95 disponíveis na página de downloads. A quarta seção é alterada com o Win98.
Desligar o Windows
Um comando para sair do Windows 95. Isso só pode ser usado para desligar, não reiniciar ou sair para msdos. Para sair para msdos digite ExitToMsDos, que executa o arquivo Pif com o mesmo nome. Coloque o comando em um atalho ou arquivo de lote.
C:\WINDOWS\RUNDLL32.EXE user.exe,ExitWindows
Reinicie o Windows
Para reiniciar a cópia do Windows, saia para Dos.pif (a parte pif fica oculta) e copie e renomeie-a para Reiniciar o Windows. Edite a planilha de programas nas propriedades Altere a linha de comando para:
C:\WINDOWS\command.com /C exit
Certifique-se de que a opção Fechar ao sair está marcada. Na caixa de diálogo Avançado, selecione Usar configuração atual do MSDos para sair e reiniciar o Windows sem reinicializar. Verifique o aviso antes de entrar no modo MSDos se for necessária uma confirmação antes de sair e reiniciar. O modo MSDos deve ser verificado.
Uma maneira alternativa é usar a função ExitWindowsExec. Isso sai para MSDos para executar um programa, mas como nenhum programa recebe o Windows é reiniciado. Tpye em um atalho ou na caixa de diálogo Iniciar - Executar.
C:\WINDOWS\RUNDLL.EXE user.exe,ExitWindowsExec
Caixa de diálogo Desligar
Este arquivo reg definirá a opção padrão na caixa de diálogo Desligar. O Windows 95B e o IE4 lembram-se da última configuração escolhida, portanto, para definir o padrão para essas versões (em vez da última ação), adicione a seguinte linha de comando a C:\Windows\Winstart.bat
(criar Winstart.bat
, se necessário). Lembre-se de usar o nome curto do filke.
Regedit C:\<Path to Reg File>\ShutDown.Reg
Ou esta linha de comando para um atalho e coloque-o na pasta Iniciar.
Regedit /s C:\<Path to Reg File>\ShutDown.Reg
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
'1=first choice in dialog box, 2=second choice, ect.
"Shutdown Setting"=dword:00000001
Por meio do SHExitWindowsEx
Usando o User.exe & User32.dll Sair das funções do Windows não permite qualquer controle sobre qual tipo de desligamento é pré-formado, pois os parâmetros não são passados, eles operam como se 0 fosse passado - que é o desligamento para o ExitWindows e o Logoff para o ExitWindowsEx. Uma função não documentada SHExitWindowsEx em Shell32.dll, que é o que o Explorer parece usar, recebe parâmetros.
rundll32.exe shell32.dll,SHExitWindowsEx [optional number in hex]
Valor da ação no Hex
EWX_LOGOFF 0
EWX_SHUTDOWN 1
EWX_REBOOT 2
EWX_FORCE 4
EWX_POWEROFF
for machines that turn off their own power 8
Esses valores podem ser somados, por exemplo, 5 é o desligamento e força os aplicativos a serem fechados e um logoff implícito.
Observe que não há Reiniciar sem reinicializar. Isso requer um parâmetro de 42 (hex) para ser passado para o ExitWindows no User.exe. Isso não pode ser feito a partir da linha de comando. Veja a dica acima para um trabalho.