Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 02.12.2007, 23:02   #1
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
Вопрос заставить компьютер перейти в спящий и ждущий режим

Как заставить компьютер перейти в спящий и ждущий режимы!

И ещё как перейти на экран приветствия (Windows+L)

Заранее спасибо!
Никки вне форума Ответить с цитированием
Старый 02.12.2007, 23:47   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,728
По умолчанию

Цитата:
Сообщение от Никки Посмотреть сообщение
Как заставить компьютер перейти в спящий и ждущий режимы!

И ещё как перейти на экран приветствия (Windows+L)

Заранее спасибо!
Ждущий режим
Код:
procedure TForm1.N5Click(Sender: TObject);
 var 
 hToken: THandle; 
 tkp: TTokenPrivileges; 
 ReturnLength: Cardinal; 
 begin 
 if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or 
  TOKEN_QUERY, hToken) then 
 begin 
  LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid); 
  tkp.PrivilegeCount := 1; 
  tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; 
  if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then
  SetSystemPowerState(true, true);
end;
end;
Спящий режим
Код:
procedure TForm1.N6Click(Sender: TObject);
begin
winexec(Pchar('rundll32.exe powrprof.dll,SetSuspendState'),sw_Show);
end;
А вот как залочить комп не знаю. Не надо было.
FaTaL вне форума Ответить с цитированием
Старый 03.12.2007, 08:14   #3
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,261
По умолчанию

Код:
keybd_event (VK_LWIN, 0, 0, 0);
keybd_event (76, 0, 0, 0);
keybd_event (76, 0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
Sibedir вне форума Ответить с цитированием
Старый 03.12.2007, 09:04   #4
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,728
По умолчанию

Цитата:
Сообщение от Sibedir Посмотреть сообщение
Код:
keybd_event (VK_LWIN, 0, 0, 0);
keybd_event (76, 0, 0, 0);
keybd_event (76, 0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
Спасибо. Залочивание компа работает. Ещё бы хотелось узнать как выйти из пользователя в NT подобных системах?
FaTaL вне форума Ответить с цитированием
Старый 03.12.2007, 09:10   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

LockWorkStation
Функция LockWorkStation отправляет запрос на блокировку дисплея рабочей станции. Блокирование рабочей станции защищает ее от несанкционированного использования.
Stilet вне форума Ответить с цитированием
Старый 03.12.2007, 09:34   #6
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,261
По умолчанию

Цитата:
как выйти из пользователя в NT подобных системах
Вроде так: shutdown -l

Для Stilet:
А что возвращает LockWorkStation?

Последний раз редактировалось Sibedir; 03.12.2007 в 09:38.
Sibedir вне форума Ответить с цитированием
Старый 03.12.2007, 09:36   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Цитата:
как выйти из пользователя в NT подобных системах
Еще можно применить ExitWindowsEx.
Stilet вне форума Ответить с цитированием
Старый 03.12.2007, 09:42   #8
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,261
По умолчанию

О, нашел. .

Цитата:
Функция LockWorkStation отправляет запрос на блокировку дисплея рабочей станции. Блокирование рабочей станции защищает ее от несанкционированного использования.

BOOL LockWorkStation(VOID);

Параметры
Функция не имеет параметров.

Возвращаемые значения
В случае успеха возвращается ненулевое значение. Поскольку функция выполняется асинхронно, ненулевое возвращаемое значение указывает, что операция была инициирована. Оно не указывает, была ли рабочая станция успешно заблокирована.
В случае неудачи возвращается нуль. Для получения дополнительной информации об ошибке вызовите функцию GetLastError.

Комментарии
Общими причинами, по которым рабочая станция не может быть заблокирована, даже если вызов функции завершился успешно, могут быть: отсутствие вошедшего в систему пользователя, существующая блокировка рабочей станции, запущенность процесса не на интерактивном рабочем столе, отклонение запроса библиотекой графической идентификации и аутентификации (GINA DLL).
Вызов функции приводит к такому же результату, что и нажатие клавиш Ctrl+Alt+Del и щелчок по кнопке "Lock Workstation" ("Блокировка"). Для разблокирования рабочей станции пользователь должен войти в систему.

Требования
Windows NT/2000/XP: включена в Windows 2000 и выше.
Windows 95/98/Me: не поддерживается.
Заголовок: объявлена в Winuser.h; подключать Windows.h.
Библиотека: используйте User32.lib.
Кстати. ExitWindowsEx уже смотрел. Описание не нашел. Функция требует какие-то параметры.

Последний раз редактировалось Sibedir; 03.12.2007 в 22:30.
Sibedir вне форума Ответить с цитированием
Старый 03.12.2007, 09:47   #9
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,261
По умолчанию

И так заработала:
Код:
ExitWindowsEx (0, 0);
Sibedir вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перейти по ссылке (URL) Avron Общие вопросы Delphi 3 22.12.2008 17:56
Как перейти на следущюю строку? nikleb Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 16.06.2008 21:19
Безопасная связка компьютер-компьютер, как организовать наилучшую защиту Alar Операционные системы общие вопросы 3 17.02.2008 22:15
Перезагрузка компа, ждущий и спящий режим Yar Помощь студентам 2 21.08.2007 10:28


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS