FUNCTION PBMAIN
pid???=SHELL("cdeject.exe /x",0)
ActivateExe "poweroff.exe"
END FUNCTION
poweroff.exe waits 5 seconds allowing enough time for the cdeject command (ran asynchronously) to eject the CD before power is lost.
'poweroff.exe
#COMPILE EXE
#CONSOLE OFF
#INCLUDE "win32api.inc"
' // Native API to Shutdown the System
DECLARE FUNCTION RtlAdjustPrivilege& LIB "ntdll" ALIAS "RtlAdjustPrivilege" (BYVAL Privilege&, BYVAL NewValuea&, BYVAL NewThread&, OldValue&)
DECLARE FUNCTION NtShutdownSystem& LIB "ntdll" ALIAS "NtShutdownSystem" (BYVAL ShutdownAction&)
FUNCTION PBMAIN () AS LONG
RtlAdjustPrivilege 19, 1, 0, 0 'Set Shutdown Privileges
SLEEP 5000
NtShutdownSystem 2 '0=shutdown, 1=restart, 2=poweroff
END FUNCTION
#COMPILE EXE
#CONSOLE OFF
#INCLUDE "win32api.inc"
' // Native API to Shutdown the System
DECLARE FUNCTION RtlAdjustPrivilege& LIB "ntdll" ALIAS "RtlAdjustPrivilege" (BYVAL Privilege&, BYVAL NewValuea&, BYVAL NewThread&, OldValue&)
DECLARE FUNCTION NtShutdownSystem& LIB "ntdll" ALIAS "NtShutdownSystem" (BYVAL ShutdownAction&)
FUNCTION PBMAIN () AS LONG
RtlAdjustPrivilege 19, 1, 0, 0 'Set Shutdown Privileges
SLEEP 5000
NtShutdownSystem 2 '0=shutdown, 1=restart, 2=poweroff
END FUNCTION
Leave a comment: