![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Snake_B |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 72 Пол: Мужской Репутация: ![]() ![]() ![]() |
Подскажите как из программы перевести компьютер в "спящий режим" (Hibernate),
не запуском внешнего приложения, а например с помощью API... Или если нет такой функции, то как можно изменить права пользователя для "ShellExecute(Handle, nil, 'rundll32.exe', 'powrprof.dll,SetSuspendState', nil, SW_HIDE);" |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
В DRKB есть раздел: Как перевести компьютер в Stend-by или Hibernate?
там смотрел ? -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Snake_B |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 72 Пол: Мужской Репутация: ![]() ![]() ![]() |
Да, не заметил...
Но всё равно проблемки, попробую по подробней... При вызове через "ShellExecute(Handle, nil, 'rundll32.exe', 'powrprof.dll,SetSuspendState', nil, SW_HIDE);" Если произведен вход под пользователем с такими же правами, то переход в Hibernate не происходит. Т.е. Админ(активен) / Админ Пользователь(активен) / Админ или пользователь Если вызов через "SetSuspendState( Hibernate, ForceCritical, DisableWakeEvent: Boolean);" (как в DRKB) то если произведен вход под другим пользователем, с любыми правами, переход в Hibernate не происходит. При чем не имеет значение какие права у того пользователя котрый активен. Админ(активен) / Гость - перехода не будет... Вот собственно хотелось бы это обойти... |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Snake_B, а ты привилегии SE_SHUTDOWN_NAME установил?
|
Snake_B |
![]()
Сообщение
#5
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 72 Пол: Мужской Репутация: ![]() ![]() ![]() |
Snake_B, а ты привилегии SE_SHUTDOWN_NAME установил? NTSetPrivilege(SE_SHUTDOWN_NAME,True); SetSuspendState(True, True, True); NTSetPrivilege(SE_SHUTDOWN_NAME,False); так же пробовал SetSuspendState со значениями (True, True/false, True/false); только ни чего не изменилось... а для "ShellExecute(Handle, nil, 'rundll32.exe', 'powrprof.dll,SetSuspendState', nil, SW_HIDE);" привелегии не работают, внешняя программа... |
Snake_B |
![]()
Сообщение
#6
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 72 Пол: Мужской Репутация: ![]() ![]() ![]() |
Может тогда подскажите как определить, что вход осуществлен под Гостем?
|
![]() ![]() |
![]() |
Текстовая версия | 23.06.2025 14:24 |