![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно отключить монитор? [D5, WinXP]
heruvim4ik © (2002-03-09 22:40:00)см. Тему
Только подробнее плз... Для полного чайника объясняете!
Заранее благодарен.
Song (2002-03-11 15:44:00) [1]Вопрос в тему: определить когда монитор включается. Когда выключается я отлавливаю сообщение SC_MONITORPOWER, а вот когда включается оно не генерируется. Идеи есть какие-нибудь?
heruvim4ik (2002-03-11 15:30:00) [2]Блин!!! Самый клёвый форум, который когда-либо видел!!! Ахромное всем спасибо...
Севостьянов Игорь (2002-03-11 15:24:00) [3]Можно и клаву и мышку залочить - по времени..., а то не разлочишь потом... Например на 5 секунд
procedure TForm1.Button1Click(Sender: TObject);
function FuncAvail
(_dllname, _funcname: string; var _p: pointer):
boolean;
var _lib: tHandle;
begin
Result := false;
_p := NIL;
if LoadLibrary(PChar(_dllname)) = 0 then exit;
_lib := GetModuleHandle(PChar(_dllname));
if _lib <> 0 then
begin
_p := GetProcAddress(_lib, PChar(_funcname));
if _p <> NIL then Result := true;
end;
end;
var
xBlockInput : function(Block: BOOL):
BOOL; stdcall;
begin
if FuncAvail
("USER32.DLL", "BlockInput", @xBlockInput) then
begin
xBlockInput(true);
Sleep(5000);
xBlockInput(false);
end;
end;
Севостьянов Игорь (2002-03-11 15:24:00) [4]Можно и клаву и мышку залочить - по времени..., а то не разлочишь потом... Например на 5 секунд
procedure TForm1.Button1Click(Sender: TObject);
function FuncAvail
(_dllname, _funcname: string; var _p: pointer):
boolean;
var _lib: tHandle;
begin
Result := false;
_p := NIL;
if LoadLibrary(PChar(_dllname)) = 0 then exit;
_lib := GetModuleHandle(PChar(_dllname));
if _lib <> 0 then
begin
_p := GetProcAddress(_lib, PChar(_funcname));
if _p <> NIL then Result := true;
end;
end;
var
xBlockInput : function(Block: BOOL):
BOOL; stdcall;
begin
if FuncAvail
("USER32.DLL", "BlockInput", @xBlockInput) then
begin
xBlockInput(true);
Sleep(5000);
xBlockInput(false);
end;
end;
DelGod (2002-03-10 11:53:00) [5]код вполне работает
procedure TForm1.button1Click(Sender: TObject);
begin
timer1.Interval:=10000;
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, 0);
timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
end;
heruvim4ik (2002-03-10 11:02:00) [6]А подробнее мона??
Yaro (2002-03-10 00:37:00) [7]Реально - я в таймер пихал
heruvim4ik (2002-03-10 00:23:00) [8]Спасибо, работает...
ТОлько немного другая строка:
SendMessage(Application.Handle,wm_SysCommand,SC_MonitorPower,1);
А реально сделать, чтоб он не врубался от движеня мыши или нажатия клавишь?
copyr25 (2002-03-09 23:06:00) [9]Sasha9, кажется публиковал:
sendmessage(fhandle,wm_syscommand,sc_monitorpower,1);//выкл
sendmessage(fhandle,wm_syscommand,sc_monitorpower,-1);//вкл
sendmessage(fhandle,wm_syscommand,sc_monitorpower,0);//текстовый режим
Читайте ВСЕ странички конфы, сэр:)