![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| adminvoz |
|
|||
|
Unregistered |
Есть такая проблема: Нужно переодически (по времени) закрывать программу на компьютерах юзеров, да бы они не забывали её выключать перед уходом. Проблема в том что программа перед закрытием спрашивает да или нет (Выйти). Останавливать программу закрытием процесса в таск менеджере нельзя. Как реализовать закрытие программы по времени и авто ответом в доп. окне "Да" и эмуляцией нажатия кнопки мыши?
Заранее благодарен за ЛЮБЫЕ советы в этой области! |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Вариант, не отличающийся изяществом:
1) Получаем (опытным путем, через скриншот) координаты кнпоки "ДА" 2) Используя WindowFromPoint получаем HANDLE окна вопроса 3) Посылаем через SendMessage WM_LBUTTONDOWN полученному хэндлу по известным координатам. 4) Через некоторое время(для порядка) посылаем WM_LBUTTONUP. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
А может не обязательно клик мышки имитировать... Может проще послать нажатие кнопки Enter (если там отфет Да по умолчанию)?
-------------------- Да. Именно так. |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 3 Всего: 73 |
А если нет, то TAB, затем ENTER -------------------- Теперь при чем :P |
|||
|
||||
| III.nfo |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 18.10.2004 Репутация: нет Всего: 2 |
Извините, а так ли надо именно эмулировать нажатие,?
Нельзя ли просто вызвать соответствующую функцию? |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Если воспользоваться соответствующей функцией, то
либо выскочет окошко "Вы уверены, что хотите выйти" либо убивать нельзя по условию -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| vadims |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 8.6.2005 Репутация: 2 Всего: 17 |
Под Win - не могу вспомнить функцию, но есть такая - эмулировать нажатие клавиши. Поищи слова типа SendKey, PressKey, ...VirtualKey - вообщем вокруг 'Key'. Опять же через SendMsg реально симитировать почти все Под DOS (в принципе если постараться можно и под Win) - через bios зашвырнуть код клавиши в буфер клавиатуры - для этого в Borlande например существует функция bioskey, а можно и напрямую через int 10h. Там уж выбирай - толи тебе ENTER эмулировать, толи hot-key для клавиши 'Да' (наверняка же есть) Я конечно не знаю реальной ситуации, но 'разные пути ведут к одной и той же цели' 1. если программа 'самописная' я бы нашел разработчика и за бутылку пива заставил бы его ввести опцию - 'отвалиться без вопросов' 2. если она более или менее 'продвинутая' - наверняка есть язык макросов А вообще-то чтобы присоветовать что-то более внятное надо получить ответ на вопрос: А что за программу то закрыть надо ??? В какой конкретно среде среде она функционирует ??? И что вообще за проблема - пользователь забыл выключить компьютер ??? Забыл и забыл. Она что - если 10 мин нет нажатия на клавиши начинает низкоуровневое форматирование ??? Кстати очень правильно заметил Mayk, что если она спрашивает надо ли выйти то значит 'кому-то это надо' - если безусловно глушить процесс, наверняка можно что-то потерять -------------------- Cpu not found ! Press any key for software emulation. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |