|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.12.2007, 19:02 | #1 |
Форумчанин
Регистрация: 25.12.2007
Сообщений: 655
|
Нужна помощь в написании кода
Как написать код для выключения и перезагрузки ПК .Delphi 7.
За частые поиски был забанен во всех известных
поисковых системах! |
26.12.2007, 19:19 | #2 |
Участник клуба
Регистрация: 19.12.2007
Сообщений: 1,100
|
Держи исходники:
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ... |
27.12.2007, 09:32 | #3 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 321
|
[CODE]
Для выполнения перезагрузки/выключения предназначены функции ExitWindows/ExitWindowsEx ExitWindows: Описание: Function ExitWindows(Reserved: DWord; ReturnCode: Word): Bool; Иницииpует стандаpтную пpоцедуpу завеpшения pаботы с Windows. Все пpикладные задачи должны подтвеpдить завеpшение pаботы Windows. Вызывает функцию 4CH пpеpывания 21H DOS. Паpаметpы: Reserved: Установлен в нуль. ReturnCode: Значение, пеpедаваемое в DOS (в pегистpе AL). Возвpащаемое значение: Нуль, если одна или несколько задач отказываются завеpшить pаботу. Примеры использования: ExitWindows(EWX_LOGOFF,0); - завершение сеанса ExitWindows(EWX_SHUTDOWN,0); - выключение компьютера ExitWindows(EWX_REBOOT,0); - перезагрузка Флаги EWX_FORCE, EWX_POWEROFF и EWX_FORCEIFHUNG могут комбинироваться к нужному действию. ExitWindowsEx: Функция ExitWindowsEx() представляет собой расширенный вариант ExitWindows(). Описание: BOOL ExitWindowsEx( UINT uFlags, DWORD dwReserved, ); Функция ExitWindowsEx перезагружает(restart) или выключает систему (shutdown), а также может завершить сессию для текущего пользователя(log off). Параметры: uFlags -- флаг завершения работы, может принимать следущие значения: EWX_LOGOFF завершает сессию текущего пользователя. EWX_POWEROFF выключает питание компьютера(компьютер должен поддерживать данную функцию). EWX_REBOOT перезагружает систему. EWX_SHUTDOWN завершает работу комьпьютера до того места, где он может быть безопасно выключен: сброшенны все файловые буферы на диск, завершает работу всех процессов. dwReserved --Зарезирвированно для последующих нужд, параметр игнорируется. Возвращаемое значение: Не ноль если всё прошло успешно Пример использования: ExitWindowsEx(EWX_SHUTDOWN,0); Остальные примеры смотри в описании первой функции. Вышеописанные примеры действительны только для w9x/Me. Дело в том, что, чтобы выполнить функциию в NT ОС, нужно получить права на выполнение этой функции. Сделать это можно через AdjustTokenPriviligies. С помощью нижеприведённой функции можно получить любую привелегию, в т.ч. и привеленгию SeShutdownPrivilege, которая нужна для разрешения функции ExitWindows(Ex) Function SetPrivilege(aPrivilegeName: String; aEnabled: Boolean ): Boolean; Var TPPrev, TP: TTokenPrivileges; Token: THandle; dwRetLen: DWord; Begin Result:=False; OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, @Token ); TP.PrivilegeCount:=1; IF LookupPrivilegeValue(nil,PChar(aPri vilegeName),TP.Privileges[0].LUID )) then Begin IF aEnabled then TP.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED else TP.Privileges[0].Attributes:=0; dwRetLen:= 0; Result:=AdjustTokenPrivileges(Token ,False,TP,SizeOf(TPPrev),TPPrev,dwR etLen); End; CloseHandle(Token); End; Пример использования для среды NT: SetPrivilege('SeShutdownPrivilege', True); ExitWindowsEx(EWX_SHUTDOWN,0); Автор: Song [\CODE] |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужна помощь в написании програмки на с++ | Jondeer | Общие вопросы C/C++ | 11 | 10.06.2008 17:54 |
Нужна помощь в написании программы. | GhosT3Ds | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 23.12.2007 07:45 |