Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как закрыть программу по времени. с доп. окном запроса. 
:(
    Опции темы
adminvoz
  Дата 14.6.2005, 14:29 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Есть такая проблема: Нужно переодически (по времени) закрывать программу на компьютерах юзеров, да бы они не забывали её выключать перед уходом. Проблема в том что программа перед закрытием спрашивает да или нет (Выйти). Останавливать программу закрытием процесса в таск менеджере нельзя. Как реализовать закрытие программы по времени и авто ответом в доп. окне "Да" и эмуляцией нажатия кнопки мыши?

Заранее благодарен за ЛЮБЫЕ советы в этой области!
  Вверх
Mayk
Дата 14.6.2005, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Вариант, не отличающийся изяществом:
1) Получаем (опытным путем, через скриншот) координаты кнпоки "ДА"
2) Используя WindowFromPoint получаем HANDLE окна вопроса
3) Посылаем через SendMessage WM_LBUTTONDOWN полученному хэндлу по известным координатам.
4) Через некоторое время(для порядка) посылаем WM_LBUTTONUP.





--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Дрон
Дата 14.6.2005, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 10
Всего: 93



А может не обязательно клик мышки имитировать... Может проще послать нажатие кнопки Enter (если там отфет Да по умолчанию)?


--------------------
Да. Именно так.
PM   Вверх
Ignat
Дата 14.6.2005, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 3
Всего: 73



Цитата
если там отфет Да по умолчанию

А если нет, то TAB, затем ENTER smile


--------------------
Теперь при чем :P
PM   Вверх
III.nfo
Дата 14.6.2005, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 18.10.2004

Репутация: нет
Всего: 2



Извините, а так ли надо именно эмулировать нажатие,?
Нельзя ли просто вызвать соответствующую функцию?
PM MAIL WWW   Вверх
Mayk
Дата 14.6.2005, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Если воспользоваться соответствующей функцией, то
либо выскочет окошко "Вы уверены, что хотите выйти"
либо убивать нельзя по условию


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
vadims
Дата 14.6.2005, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0496 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.