| |
|
|
|
Descripción:
InitiateSystemShutdown fährt el Rechner una Zeitintervall herunter y son esta una Message de. Diese Función hay sólo bajo NT-basierten Windowssystemen.
Deklaration:
DEF @InitiateSystemShutdown(5) !ADVAPI32,InitiateSystemShutdownA
Parámetro:
1.Parámetro: Adresse uno Cuerdas oder Bereichsvariable con un String,, el el Computernamen des herunterzufahrenden Systems enthält. Ist dieser Parámetro una Leerstring oder 0, se el aktuelle Sistema heruntergefahren. 2.Parámetro: Adresse uno Cuerdas oder Bereichsvariable con un String,, el una Message enthält, cuando el Herunterfahren adecuado voluntad se. Dieser Parámetro kann 0 ser. 3.Parámetro: Tiempo a para Herunterfahren des Rechners en Sekunden como LongInt. 4.Parámetro: Flag, el angibt si todos Anwendungen con el Herunterfahren einverstanden ser necesario.=> 1 = Ohne Nachfrage herunterfahren. 0 = Herunterfahren abbrechen, si una Anwendung no ihr OK son. Um Rechner überhaupt herunterfahren a puede, necesario el Privilegien SeShutdownPrivilege y SeRemoteShutdownPrivilege disponible ser y aktiviert voluntad. 5.Parámetro: Flag, el angibt si después de el Herunterfahren una Neustart des Rechners tener lugar se.=> 1 = Neustart 0 = Nur herunterfahren
Rückgabewert:
1 En Erfolg, 0 en una Fehler.
Beispiele:
KompilierenMarcaSeparaciónDEF @InitiateSystemShutdown(5) !"ADVAPI32","InitiateSystemShutdownA"
DEF @LookupPrivilegeName(4)!"advapi32","LookupPrivilegeNameA“
DEF @LookupPrivilegeValue(3) !"advapi32","LookupPrivilegeValueA"
DEF @OpenProcessToken(3) !"advapi32","OpenProcessToken"
DEF @AdjustTokenPrivileges(6) !"advapi32","AdjustTokenPrivileges”
DEF @GetCurrentProcess(0) !"kernel32","GetCurrentProcess"
DEF @CloseHandle(1) !"kernel32","CloseHandle“
Declare Message$,TIME&,NewState#,token#,System$
Declare Privileg#,Luid#
dim token#,4
DIM NewState#,16
DIM Luid#,8
DIM Privileg#,256
Long NewState#,0=1 Nur ein Privileg soll geändert werden
Long NewState#,12=$00000002 Das Privileg soll eingeschaltet werden
Print @OpenProcessToken(@GetCurrentProcess(),$0020 | $0008,Token#)
STRING Privileg#,0="SeShutdownPrivilege"
Print @LookupPrivilegeValue(0,Privileg#,LUID#)
Byte NewState#,4=@Byte(Luid#,0)
Byte NewState#,5=@Byte(Luid#,1)
Byte NewState#,6=@Byte(Luid#,2)
Byte NewState#,7=@Byte(Luid#,3)
Byte NewState#,8=@Byte(Luid#,4)
Byte NewState#,9=@Byte(Luid#,5)
Byte NewState#,10=@Byte(Luid#,6)
Byte NewState#,11=@Byte(Luid#,7)
Print @AdjustTokenPrivileges(@LONG(Token#,0),0,NewState#,0,0,0)
Long NewState#,0=1 Nur ein Privileg soll geändert werden
Long NewState#,12=$00000002 Das Privileg soll eingeschaltet werden
Print @OpenProcessToken(@GetCurrentProcess(),$0020 | $0008,Token#) Es wird ein Process mit dem Handle Token gestartet, der Privilegien für mein Programm einstellen soll.
STRING Privileg#,0="SeRemoteShutdownPrivilege"
Print @LookupPrivilegeValue(0,Privileg#,LUID#)
Byte NewState#,4=@Byte(Luid#,0)
Byte NewState#,5=@Byte(Luid#,1)
Byte NewState#,6=@Byte(Luid#,2)
Byte NewState#,7=@Byte(Luid#,3)
Byte NewState#,8=@Byte(Luid#,4)
Byte NewState#,9=@Byte(Luid#,5)
Byte NewState#,10=@Byte(Luid#,6)
Byte NewState#,11=@Byte(Luid#,7)
Print @AdjustTokenPrivileges(@LONG(Token#,0),0,NewState#,0,0,0)
LET TIME&=60
LET Message$="Der Rechner wird neu gestartet!"
Print @InitiateSystemShutdown(@ADDR(System$),@ADDR(Message$),TIME&,1,1)
@CloseHandle(@LONG(Token#,0))
Dispose Luid#
Dispose Privileg#
Dispose NewState#
Dispose token#
Waitinput
[keywords:21d2f6baf0] Herunterfahren Shutdown Diálogo Message Tiempo Zeitintervall Warnung [/keywords:21d2f6baf0] |
|
|
| |
|
|