Ждущий и сплящий режими
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Ждущий и сплящий режими - 2007-01-22 14:31:37.486666
|
|
|
sinker
Сообщений: 134
Оценки: 0
Присоединился: 2007-01-08 21:55:33.930000
|
Как заставить комп заснуть из дельфи-программы? Можно ли его разбудить? Заранее спасибо.
|
|
|
RE: Ждущий и сплящий режими - 2007-01-22 16:46:32.010000
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
Разбудить хрен, а вот перевести легко - поиши в гугле
|
|
|
RE: Ждущий и сплящий режими - 2007-01-30 02:31:23.350000
|
|
|
Tages
Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
|
Вот тебе код. Только прога может сменить пользователя, перезагрузить/выкл комп… Подредактируй. Смотри хелп по ф-и ExitWindowsEx(); unit LER; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; GroupBox1: TGroupBox; RadioButton4: TRadioButton; Label1: TLabel; function SetPrivilege(aPrivilegeName: string;aEnabled: boolean): boolean; function WinExit(iFlags: integer): boolean; procedure RadioButton1Click(Sender: TObject); procedure RadioButton2Click(Sender: TObject); procedure RadioButton3Click(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure RadioButton4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function TForm1.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(aPrivilegeName),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, dwRetLen); end; CloseHandle(Token); end; function TForm1.WinExit(iFlags: integer): boolean; // возможные флаги: // EWX_LOGOFF // EWX_REBOOT // EWX_SHUTDOWN begin Result := True; if (SetPrivilege('SeShutdownPrivilege', true)) then begin if (not ExitWindowsEx(iFlags, 0)) then begin Result := False; end; SetPrivilege('SeShutdownPrivilege', False) end else begin Result := False; end; end; procedure TForm1.RadioButton1Click(Sender: TObject); begin Form1.WinExit(EWX_LOGOFF); Form1.Close; end; procedure TForm1.RadioButton2Click(Sender: TObject); begin Form1.WinExit(EWX_REBOOT); Form1.Close; end; procedure TForm1.RadioButton3Click(Sender: TObject); begin Form1.WinExit(EWX_SHUTDOWN); Form1.Close; end; procedure TForm1.RadioButton4Click(Sender: TObject); begin Form1.WinExit(EWX_POWEROFF); Form1.Close; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key=VK_ESCAPE then Form1.Close; end; end.
|
|
|
RE: Ждущий и сплящий режими - 2007-02-01 00:09:49.483333
|
|
|
halkfild
Сообщений: 286
Оценки: 0
Присоединился: 2006-11-27 18:26:36.310000
|
а как можно добавить программу на выполнение до винды… загружается перед виндой и спрашивает аутентификацию… (можно сделать двохуровневую или просто после прохождения аутентификации программы автоматом пропускать в винду)
|
|
|
RE: Ждущий и сплящий режими - 2007-02-01 01:02:46.896666
|
|
|
Tages
Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
|
:) Помню у нас на УПК(МНВК) была такая тема(ну на вход в систему). Делается просто. В БИОСе задаёш пароль на запуск машины. Пока пароль не введёш, система не загрузится. Мона и по ;)ламерски;), через Autoexec.bat(но Я не помню, с 2000 и далее это пашет или нет). Вот в 98 просто пишеш на том же Паскале прогу под ДОС. Пока пароль не верен, прога не зак свою работу. А раз не закончит, то не передаст управление следующему пункту загрузки ОС. Ну сделай аналогию на Delphi c BP.
|
|
|
RE: Ждущий и сплящий режими - 2007-02-01 01:24:39.970000
|
|
|
halkfild
Сообщений: 286
Оценки: 0
Присоединился: 2006-11-27 18:26:36.310000
|
нет вопрос намного глобальнее…. надо не просто пароль а что-то поинтереснее тоесть полноценная программа, что грузится до винды например хранить ключ на дискете… вставил дискету и комп загрузился… можно сделать на смарт картах…
|
|
|
RE: Ждущий и сплящий режими - 2007-02-02 00:31:21.646666
|
|
|
Tages
Сообщений: 30
Оценки: 0
Присоединился: 2006-03-09 01:02:16
|
Так работает CHCDSK. Посмотри в Гугле или на Яндексе. Ещё так грузится всеми любимый(ну почти) SI (SoftIce).
|
|
|
|
|