Questão Desligamento de um arquivo bat * sem * confirmação de fechamento do processo no Windows 95


Cada guia na net diz para usar o RUNDLL USER.EXE, ExitWindows que funciona ... a partir do comando run

No entanto, quando executado a partir de um arquivo bat, esse comando, embora funcione, solicita uma confirmação para eliminar os processos "restantes". Esse processo é a própria linha cmd. Eu não fui capaz de chamá-lo com 'CALL', mas como a chamada cria uma nova linha de comando, espero que o resultado seja o mesmo.

Esta é apenas uma questão do Windows 95, é para uma máquina virtual para desligamento automático após a execução de um aplicativo. A idéia é basicamente ter um script na pasta de programas de inicialização que inicia o aplicativo, aguarda até sair com o START / WAIT e, em seguida, usa algo para as janelas de desligamento automático.


1


origem




Respostas:


Se você definir seu programa como o shell em vez do explorador, ele será executado automaticamente e o Windows será encerrado quando o programa for encerrado.

De um post que eu fiz em 2001

Copie para c: \ windows. Se você editar c:\windows\system.ini e mudar

shell=explorer.exe 

para

shell=progman.exe

então o seu computador irá iniciar no modo de interface win3.11.


Dos meus 15 anos desde o último site atualizado http://www.mvps.org/serenitymacros

Sair do Windows

As três primeiras seções são do Tweak95 disponíveis na página de downloads. A quarta seção é alterada com o Win98.

Desligue 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 o Windows copie Exit To Dos.pif (a parte pif fica oculta) e copie e renomeie 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 Shut Down

Este arquivo reg irá 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), inclua a linha de comando a seguir C:\Windows\Winstart.bat (crio 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 colocá-lo 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

Através do SHExitWindowsEx

Usando o User.exe e User32.dll As funções de saída do Windows não permitem nenhum controle sobre qual tipo de desligamento é realizado, pois os parâmetros não são passados, eles operam como se 0 fosse passado - que é o desligamento para o ExitWindows eo 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 em 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 encerramento 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.


1





Tente chamar o comando acima com start deve deixá-lo executá-lo em segundo plano e não deixar um cmd.exe esperando por aí. Eu não sei a sintaxe 9x do topo da minha cabeça, mas faço um start /? na linha de comando.


0



Eu sei, mas eu tentei isso. Iniciar RUNDLL USER.EXE, ExitWindows seguido de EXIT (é uma daquelas janelas permanentes irritantes) parece fazer ... nada. Eu também tentei variações com base nos exemplos de sintaxe que encontrei: Iniciar "" RUNDLL USER.EXE, ExitWindows ", Iniciar" "RUNDLL USER.EXE, ExitWindows etc. - SCO


Existem vários métodos automatizados de desligamento para computadores contemporâneos esse link e esta) mas o Windows 95 é tão antigo que eu posso não funcionar. (Ainda assim, tente a sua sorte.) Se todos falharam, receio que a única opção seria criar você mesmo; isto é, crie um aplicativo do Windows 95 que desliga o computador.


0



Apenas uma nota que o Win95 depende cooperativo multitarefa, e pode haver ocasiões em que não pode desligar enquanto um processo está em execução. - DrMoishe Pippik
@ drmoishe-pippik: o Windows 95 usa multitarefa cooperativa só para processos de 16 bits. Além disso, o problema de bloqueio de desligamento só se aplica a processos que não respondem às mensagens WM_QUERYENDSESSION e WM_ENDSESSION em tempo hábil.
Umm ... O Windows 95 não tinha multitarefa preemptiva ... O NT foi o primeiro sistema de MS que o fez. - DrMoishe Pippik
@DrMoishe Pippik: O NT foi o primeiro sistema operacional da Microsoft que fez isso, sim. E veio antes Windows 95, em 28 de julho de 1993. Independentemente disso, O Windows 95 oferece suporte a multitarefa preemptiva apenas para processos de 32 bits.


%windir%\System32\shutdown.exe -r -f

Adicionando -f força o sistema a ser desligado ou reinicializado. no Windows 95, o caminho seria C: \ Windows \ Command referindo-se a esse site


0



Eu estou com certeza que o Windows 95 não tinha o system32 diretório, deixe sozinho shutdown.exe ... - Michael Kjörling
você tem certeza? youtube.com/watch?v=QtUaOHPi3II - Botmaster