| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Как закрыть программу по времени. |
| Автор: adminvoz 14.6.2005, 14:29 |
| Есть такая проблема: Нужно переодически (по времени) закрывать программу на компьютерах юзеров, да бы они не забывали её выключать перед уходом. Проблема в том что программа перед закрытием спрашивает да или нет (Выйти). Останавливать программу закрытием процесса в таск менеджере нельзя. Как реализовать закрытие программы по времени и авто ответом в доп. окне "Да" и эмуляцией нажатия кнопки мыши? Заранее благодарен за ЛЮБЫЕ советы в этой области! |
| Автор: Mayk 14.6.2005, 14:38 |
| Вариант, не отличающийся изяществом: 1) Получаем (опытным путем, через скриншот) координаты кнпоки "ДА" 2) Используя WindowFromPoint получаем HANDLE окна вопроса 3) Посылаем через SendMessage WM_LBUTTONDOWN полученному хэндлу по известным координатам. 4) Через некоторое время(для порядка) посылаем WM_LBUTTONUP. |
| Автор: Дрон 14.6.2005, 14:41 |
| А может не обязательно клик мышки имитировать... Может проще послать нажатие кнопки Enter (если там отфет Да по умолчанию)? |
| Автор: Ignat 14.6.2005, 14:49 | ||
А если нет, то TAB, затем ENTER |
| Автор: III.nfo 14.6.2005, 16:34 |
| Извините, а так ли надо именно эмулировать нажатие,? Нельзя ли просто вызвать соответствующую функцию? |
| Автор: Mayk 14.6.2005, 16:39 |
| Если воспользоваться соответствующей функцией, то либо выскочет окошко "Вы уверены, что хотите выйти" либо убивать нельзя по условию |
| Автор: vadims 14.6.2005, 22:51 |
| Под Win - не могу вспомнить функцию, но есть такая - эмулировать нажатие клавиши. Поищи слова типа SendKey, PressKey, ...VirtualKey - вообщем вокруг 'Key'. Опять же через SendMsg реально симитировать почти все Под DOS (в принципе если постараться можно и под Win) - через bios зашвырнуть код клавиши в буфер клавиатуры - для этого в Borlande например существует функция bioskey, а можно и напрямую через int 10h. Там уж выбирай - толи тебе ENTER эмулировать, толи hot-key для клавиши 'Да' (наверняка же есть) Я конечно не знаю реальной ситуации, но 'разные пути ведут к одной и той же цели' 1. если программа 'самописная' я бы нашел разработчика и за бутылку пива заставил бы его ввести опцию - 'отвалиться без вопросов' 2. если она более или менее 'продвинутая' - наверняка есть язык макросов А вообще-то чтобы присоветовать что-то более внятное надо получить ответ на вопрос: А что за программу то закрыть надо ??? В какой конкретно среде среде она функционирует ??? И что вообще за проблема - пользователь забыл выключить компьютер ??? Забыл и забыл. Она что - если 10 мин нет нажатия на клавиши начинает низкоуровневое форматирование ??? Кстати очень правильно заметил Mayk, что если она спрашивает надо ли выйти то значит 'кому-то это надо' - если безусловно глушить процесс, наверняка можно что-то потерять |