| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Как программно нажать клавишу? |
| Автор: Berliner 13.12.2005, 10:54 |
| Здраствуйте нужно чтобы программа(назовем ее n1) , нажала клавишу "Пропустить" (программмы назовем ее n2) и после этого выгрузилась из памяти(n1). Программы стартуют в одном bat файле в таком порядке сначала (n1 а потом n2 ). Помогите с кодом - срочно нужна помощь! |
| Автор: Snowy 13.12.2005, 10:57 | ||
В смысле кнопку или все таки клавишу? А вообще, для таких целей существует программа InqSoft Sign0fMisery Сильно облегчает написание таких вот вещей. И специально для этого предназначена. |
| Автор: Berliner 13.12.2005, 11:23 |
| Кнопку которая на экране отображается. Там нужно 2 клавиши жать "Закрыть" и "Пропустить" Добавлено @ 11:24 Сильно нужен Коддддддд |
| Автор: Snowy 13.12.2005, 11:51 |
| http://vingrad.ru/DELPHI-DLP-000800 |
| Автор: Berliner 13.12.2005, 13:06 |
| Спасиб за ссылку. Что то мне тяжело разобраться. А можно код с коментариями ? Мне сильно надо. Надо чтобы из двух кнопок "Завершение" и "Пропустить" нажалась кнопка Пропустить |
| Автор: Snowy 13.12.2005, 13:12 | ||
| Там по ссылке весь код приведен. Замени вот эту часть:
|
| Автор: Berliner 13.12.2005, 13:39 |
| Спасиб! сейчас проверю |
| Автор: F1reF0x 13.12.2005, 16:06 |
| А что если сделать так? Ищем хэндл кнопки, посылаем сообщение скаже WM_KEYDOWN и пишем для кнопки пропустить событие которое закрывает первое окно. |
| Автор: Berliner 13.12.2005, 16:26 | ||
Вот код какой я написал, но что-то ничего не закрывается. что у меня в коде не так. Подскажите, пожалуста.
|
| Автор: Snowy 13.12.2005, 16:29 | ||
Это у тебя что? DOS приложение? |
| Автор: Berliner 13.12.2005, 16:33 |
| да, но окошко выдает виндовая программа. там две кнопки Закрыть и Пропустить. |
| Автор: Snowy 13.12.2005, 16:38 | ||
В DOS приложении ты кнопочку никак не нажмешь - ее там нет.
Ну так ищи ее заголовок, а не DOS окна. |
| Автор: Romikgy 13.12.2005, 16:40 | ||||||
так вроде лучше?
|
| Автор: Berliner 13.12.2005, 17:08 | ||
Я так понял это сама винда выкидывает а какой файл в винде я не знаю. а с кодом правильно? Ток которій я у Snowy переписал Добавлено @ 17:13 это вроде w2k пишет такое сообщение . |
| Автор: Berliner 13.12.2005, 21:02 |
| Тут такая вещь! дело в том что ошибка у меня в коде который я переделал от Snowy так как программа не нажимает кнопки нивкаком окне. Код находится выше. Подскажите пожалуста, что я неправильно написал. Поправте код пожалуста |
| Автор: Berliner 14.12.2005, 10:05 |
| Никто не знает где в коде ошибка , ПОДСКАЖИТЕ ПЛИЗ? А то начальник сильно нажатие кнопки хочет! |
| Автор: Berliner 14.12.2005, 11:42 |
| Так с кодом рабобрался. Кнопки нажимаются. Но та которая надо не нажимается. : програмка я так понял по заголовку окна ищет? А может отображаться однин заголовок а на самом деле быть другой? У меня програмка в которой надо жать на кнопку имеет заголовок типа делфийского "16-разрядная система MS-DOS" далее(тело) написано- 16 разрядное ........... и две кнопки Закрыть и Пропустить(которые надо жать програмно). Самое интересное что кнопки в другом приложении это прога нажимет. Как бы сделать так чтобы и тут нажимала? Файл не могу прикрепить на форум -ошибку выдает. |
| Автор: Snowy 14.12.2005, 12:25 | ||
В "16-разрядная система MS-DOS" кнопку нажать невозможно. Ибо физически ее не существует. Можно попробовать сэмулировать нажатие клавиш. |
| Автор: Berliner 14.12.2005, 13:31 | ||
| ОК ,тогда следующий вопрос(извините если достал-но сильно надо! нажатие кнопок (для начальника)). Код отлично работает, но если кнопка имеет Под первой буквой подчеркивание то не нажимается(типа горячая клавиша). Мне бы 2 варианта 1.Как минимально переделать код, чтобы и с подчеркиванием клавиши нажимались. 2.как минимально переделать код чтобы название клавиши отыскивалось без учета первой буквы. Большое спасиб за понимание.
|
| Автор: Snowy 14.12.2005, 14:08 |
| Просто перед подчеркнутой буквой добавь знак & |
| Автор: Berliner 14.12.2005, 16:10 |
| Спасиб большое за помощь. |
| Автор: JoyEx 16.12.2005, 17:53 | ||
Вот общее решение: 1) Запусти из студии Spy++ и нацель его на нужное окно 2) Жми в этом окне кнопки и затем смотри в лог Spy++ 3) Реализуй в своей проге программно всё то, что написал Spy++ |