![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ждущий режим [D7, WinXP]
1519 © (2006-09-04 10:03:00)Здравствуйте, мастера!!!
У меня есть один вопрос: "Можно ли как-нибудь разбудить компьютер программно, не применяя физических действий, а если можно, то как."
Заранее Большое спасибо!!!
GrayFace (2006-09-08 19:32:00) [1]
unit Unit2;
interface
uses
Classes, Windows, Messages;
type
TWaitThread = class(TThread)
private
fTime:Int64;
{ Private declarations }
protected
procedure Execute; override;
public
property Time:Int64 read fTime write fTime;
end;
implementation
uses SysUtils;
{ TWaitThread }
procedure TWaitThread.Execute;
var h:THandle;
begin
fTime:=-fTime*10000;
h:=CreateWaitableTimer(nil, true, nil);
try
if not SetWaitableTimer(h, fTime, 0, nil, nil, true) then RaiseLastOSError;
if WaitForSingleObject(h,INFINITE)<>WAIT_OBJECT_0 then RaiseLastOSError;
finally
if h<>0 then CloseHandle(h);
FreeOnTerminate:=true;
Terminate;
end;
end;
end.
Не знаю, правда, почему h на правильность перед try не проверяю и зачем Terminate, но писал для себя (для будильника), так что не особо заботился о чистоте кода. Задача этого потока - разбудить систему через заданное время. В OnTerminate еще можно че-нибудь влепить.
[Rock] (2006-09-07 09:38:00) [2]В планировщике задач (тот, что в панели инструментов) создать расписание, например для текстового файла. И поставить опцию "Разбудить кампутер"
1519 (2006-09-04 20:27:00) [3][GrayFace]
не можешь привести пример, у меня что-то не получается.
1519 (2006-09-04 14:33:00) [4]А какие параметры передавать?
GrayFace (2006-09-04 10:54:00) [5]Можно. WaitableTimer'ом. См. SetWaitableTimer, Wait Functions.