|
Как в Windows XP программно выключить компьютер?
|
|||
---|---|---|---|
#18+
Господа, добрый день! В Windows 98 программно выключал копм таким вот образом: DECLARE SHORT ExitWindowsEx IN user32.dll INTEGER uFlags, INTEGER dwReserved && закрыть все задачи (и DOS то же) без сохранения и выйти с выключением питания ExitWindowsEx(5, 0) а вот в Windows XP это дело не работает - никто не подскажет как в XP программно выключить комп? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2008, 16:05 |
|
Как в Windows XP программно выключить компьютер?
|
|||
---|---|---|---|
#18+
найти поиском shutdown.exe и выполнить из приложения ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2008, 16:16 |
|
Как в Windows XP программно выключить компьютер?
|
|||
---|---|---|---|
#18+
Смотри ниже вставленый код... Просто в функцию ExitWindowsEx() подставляешь значения EWX_LOGOFF, EWX_SHUTDOWN, EWX_REBOOT, EWX_POWEROFF взависимости от того что требуется -перезагрузка, выключение... IF OS(11)='1' * если нужно работать с привелегиями DECLARE LONG GetCurrentProcess IN win32api DECLARE LONG OpenProcessToken IN win32api LONG ProcessHandle,LONG DesiredAccess,LONG @hToken DECLARE LONG LookupPrivilegeValue IN win32api STRING @lpSystemName,STRING @lpName,STRING @lpLuid DECLARE LONG AdjustTokenPrivileges IN win32api LONG TokenHandle,LONG DisableAllPrivileges,; STRING @NewState,LONG BufferLength,STRING @PreviousState,LONG @ReturnLength TOKEN_ADJUST_PRIVILEGES=32 hToken=0 OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,@hToken) lpSystemName='' SE_SHUTDOWN_NAME='SeShutdownPrivilege' lpLuid=SPACE(255) LookupPrivilegeValue(@lpSystemName,@SE_SHUTDOWN_NAME,@lpLuid) SE_PRIVILEGE_ENABLED=2 tkp=dth(1)+ALLTRIM(lpLuid)+dth(SE_PRIVILEGE_ENABLED) PreviousState=.null. ReturnLength=0 AdjustTokenPrivileges(hToken,0,@tkp,0,@PreviousState,@ReturnLength) ENDIF DECLARE LONG ExitWindowsEx IN win32api LONG uFlags,LONG dwReserved EWX_LOGOFF=0 EWX_SHUTDOWN=1 EWX_REBOOT=2 EWX_POWEROFF=8 ExitWindowsEx(EWX_REBOOT,0) CLEAR DLLS ************************************************* * Returns a 4 byte string representing the number FUNCTION dth LPARAMETERS lnNum LOCAL i,ntmp,cRes cRes="" FOR i=3 TO 0 STEP -1 ntmp=INT(lnNum/256^i) lnNum=lnNum-ntmp*(256^i) cRes=CHR(ntmp)+cRes ENDFOR RETURN cRes *** ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2008, 18:37 |
|
|
start [/forum/topic.php?fid=41&fpage=149&tid=1587324]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
2ms |
others: | 329ms |
total: | 468ms |
0 / 0 |