Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Монитор [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;
Есть еще несколько способов


Наверх

Титульная страница Поиск, карта сайта Написать письмо