Esiste un codice in C++ che mi permetta di riavviare o arrestare il sistema? se si come si fa?
grazie.
Esiste un codice in C++ che mi permetta di riavviare o arrestare il sistema? se si come si fa?
grazie.
Maurizio
il modo più semplice è questo:
system("shutdown -f -s"); // s=spegne r=riavvia
per ulteriori dettagli... [F1] alias guida in linea di windows
...Terrible warlords, good warlords, and an english song
prova anche questo:
Per maggiori dettagli puoi consultare l'MSDN:codice:#include <Windows.h> main() { ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, 0); }
http://msdn.microsoft.com/library/de...twindowsex.asp
Puoi trovare tutte le impostazioni per il primo flag, per esempio puoi fare in modo che venga semplicemente disconnesso l'utente...
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Con Windows XP non riesco a spegnere il PC...Orig. inviato da LeleFT
codice:#include <Windows.h> main() { ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, 0); }
al massimo, se come parametri passo (0, 0)
riesco a fare il LOGOFF.
...Terrible warlords, good warlords, and an english song
code:
______________________________________
#include <windows.h>
main()
{ ExitWindowsEx(EWX_POWEROFF | EWX_FORCE, 0);
}
______________________________________
Con questo codice nemmeno io riesco a spegnere il PC sotto Windows XP
Invece il codice:
______________________________________
system("shutdown -f -s");
______________________________________
funziona solo sotto Windows 2000 e Windows XP
e non con Windows 95, Windows 98 e Windows ME.![]()
![]()
Chi mi trova un codice che funzioni sotto tutti i Sistemi Operativi precedentemente elencati??? (al massimo escludiamo Win 95)
![]()
Maurizio
codice:HANDLE hToken; TOKEN_PRIVILEGES tkp; if (OpenProcessToken (GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) { LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges (hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0); if (GetLastError() == ERROR_SUCCESS) ExitWindowsEx (EWX_SHUTDOWN, 0); /* EWX_SHUTDOWN per l'arresto EWX_REBOOT per il riavvio EWX_LOGOFF per disconnessione EWX_POWEROFF per spegnimento EWX_FORCE puoi OR-arlo con i valori x forzare il processo di chiusura EWX_FORCEIFHUNG peuoi OR-arlo se vuoi che siano chiusi forzatamente i processi bloccati */ }
per sistemi operativi DIVERSI DA NT
basta usare ExitWindowsEx (EWX_SHUTDOWN, 0);
senza le altre api (non implementate - quindi da 1
errore di importazione dll su Win9x/Me)...
quindi ricorri a GetVersion e LoadLibrary
x sicurezza e portabilita' al 100%
per riavviare in DOS (puro dos) devi fare
asm int 0x19;