Форум: "WinAPI";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];
ВнизЖдущий режим Найти похожие ветки
← →
1519 (2006-09-04 10:03) [0]Здравствуйте, мастера!!!
У меня есть один вопрос: "Можно ли как-нибудь разбудить компьютер программно, не применяя физических действий, а если можно, то как."
Заранее Большое спасибо!!!
← →
GrayFace © (2006-09-04 10:54) [1]Можно. WaitableTimer"ом. См. SetWaitableTimer, Wait Functions.
← →
1519 (2006-09-04 14:33) [2]А какие параметры передавать?
← →
1519 (2006-09-04 20:27) [3][GrayFace]
не можешь привести пример, у меня что-то не получается.
← →
[Rock] (2006-09-07 09:38) [4]В планировщике задач (тот, что в панели инструментов) создать расписание, например для текстового файла. И поставить опцию "Разбудить кампутер"
← →
GrayFace © (2006-09-08 19:32) [5]
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 еще можно че-нибудь влепить.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c