Newsgroup: it.comp.programmare
Titolo: Riavviare il pc con 1 prg???

Ciao a tutti,
vorrei sapere se c'è il modo (Che so, qualche interrupt particolare)
di forzare il riavvio del sistema con 1 prg scritto in Java, C++, C,
VisualBasic o Assembly.
Il prg dovrebbe girare sotto Windows.
Bisogna forse chiamare qualche procedura delle DLL di Winzoz?
Grazie a tutti!!!


Esiste l'API ExitWindowsEx che permette di fare questo.
In Visual C il suo uso è abbastanza semplice. Con un minimo di lavoro, 
anche il porting per VB. Sicuramente esiste un porting per le MFC, sul 
Java, non saprei. Anche qui si può utilizzare una funzione nativa 
esterna fornita da una DLL (ma ti giochi del tutto la compatibilità di 
piattaforma, sempre che ti interessi)
LP

 LP
Grazie mille, proverò con C.
Ciauz!

 Il prg dovrebbe girare sotto Windows.
Si fa presto a dire "riavvio".
Una primitiva per riavviare la macchina esiste e te l'hanno segnalata 
nel messaggio precedente.
Ma se riavvii, la macchina riparte e si ferma alla login.
Se ti basta questo sei a posto.

!!--??--!!MarioBros!!--??--!! ha scritto:

Esiste anche una utility fornita con Windows chiamata "shutdown".
Per sapere come si usa, dal prompt dei comandi digita "shutdown".
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

Se ti basta questo sei a posto.
Si mi basta questo...
Mi serviva solo per un prg di installazione in cui modificavo delle
impostazioni di sistema (Odio InstallShield Wizard)...
Cmq penso che userò shutdown da VB, ho controllato ed è molto comodo..
Grazie a tutti!

 Cmq penso che userò shutdown da VB, ho controllato ed è molto comodo..
Non credo che sia presente su tutte le versioni di windows:
io per esempio non ce l'ho quel comando


Il comando shutdown è stato introdotto nel WinNT4 Resource Kit, e si 
trova anche nel resource kit di Win2K, insieme a ShutGUI (interfaccia 
grafica dello stesso comando)
Non fa altro che utilizzare l'RPC di shutdown (necessita però di un 
login con un utente di classe amministratore sulla macchina da 
riavviare/arrestare).
Mi sembra di ricordare, ma qui bisognerebbe controllare, che M$ lo 
distribuisca anche slegato dal resource kit.
Nel caso lo si voglia distribuire, bisogna sentire M$, e comunque non 
funzionerà sui sistemi Win9x (quindi anche WinME)
LP
-- 

 Il comando shutdown è stato introdotto nel WinNT4 Resource Kit, 
Ah, ecco!
 > e comunque non funzionerà sui sistemi Win9x (quindi anche WinME)
Quindi la soluzione piu' universale e' quella di richiamare l'API di 
Shutdown (che funziona benissimo anche sul mio win98) invece di 
avvalersi di eseguibili esterni, che potrebbero non essere presenti, 
oppure fallire.


In linea di principio, sì.
Anche perché dall'invocazione dell'API puoi sapere se non funziona 
*perché* non funziona.
Oltre al fatto che avresti meno problemi riguardo alle licenze.
LP

Sembra che Roberto Montaruli abbia detto :

Si, mi occupai di questo problema tempo fa. Infatti posso dirti che 
Windows XP Home Edition è sfornito di questo comando, ad esempio
Ad ogni modo, se ti serve una soluzione veloce utilizzando "shutdown" o 
similare e vuoi evitare problemi di licenza con Shutdown.exe di 
Microsoft, esiste una variante alternativa scritta da SysInternals (ora 
acquisita da Microsoft anche lei :) che si chiama "psshutdown.exe".
A limite potresti confezionare una utility VB che chiama 
"psshutdown.exe" per arrestare il sistema così, copiando entrambi i 
file (il tuo eseguibile e psshutdown.exe) hai una soluzione, come dire, 
cross-windows :).
ciao
andrea