![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Монитор [D5, Win95/98]
MAX_ © (2003-08-29 16:44:00)
Hi!
Скажите пожалуйста, почему на некоторых компьютерах если выключить программно монитор этой функцией (SendMessage(Application.Handle,WM_SYSCOMMAND,SC_MONITORPOWER,0)), то при перемещении мыши, монитор сам включается. Как с этим бороться. А может это в реестре нужно прописать?
И еще одно, как программно поменять системное время и дату (SetTime- не катит).
Спасибо.
AndreySoft (2003-08-30 13:17:00) [1]
Если ты работаешь в 95/98/Me, тогда твой пример:
...
(SendMessage Application.Handle,WM_SYSCOMMAND,SC_MONITORPOWER,0));
...
будет реагировать на мышь...
а тебе надо чтобы не реагировало, тогда попробуй вот так:
...
(SendMessage Application.Handle,WM_SYSCOMMAND,SC_MONITORPOWER,1));
...
включить монитор в таком случае можно либо клавишей Esc, либо вот таким кодом:
...
(SendMessage Application.Handle,WM_SYSCOMMAND,SC_MONITORPOWER,-1));
...
Примечание:в XP реакция на мышь присутствует, а вот в 98 и тому подобное всё OK.
Yanis (2003-08-30 10:17:00) [2]
//Вырубает клаву
winexec(Pchar("rundll32 keyboard,disable"),sw_Show);
//Вырубает мышь
winexec(Pchar("rundll32 mouse,disable"),sw_Show);
А еще попробуй вот этоBlockInput(),потому что вышепреведённые функции не под всеми os работают, функция находится в библиотекеuser32.dll
MAX_ (2003-08-30 09:46:00) [3]
Так никто и не ответил. Так как же все таки выключить монитор, чтобы не через клавиатуру, не через мышку нельзя было включить его. Только программное включение.
MAX_ (2003-08-30 09:29:00) [4]
Мал0й (29.08.03 18:58)
да ладно прикидываться...)))))))))
я в свой код добавил, у меня теперь все работает!!!!!!!!!
СПАСИБО!!!!!!
Мал0й (2003-08-29 18:58:00) [5]
Извиняюсь, отвнтил не в ту ветку
Мал0й (2003-08-29 18:56:00) [6]
Сам не тестировал взял с инета
Procedure settime(hour, min, sec, hundreths : byte); assembler;
asm
mov ch, hour
mov cl, min
mov dh, sec
mov dl, hundreths
mov ah, $2d
int $21
end;
////////////////////////////////////////////////////
Procedure setdate(Year : word; Month, Day : byte); assembler;
asm
mov cx, year
mov dh, month
mov dl, day
mov ah, $2b
int $21
end;
Есть еще несколько способов