![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Fly1410 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 15.7.2006 Репутация: нет Всего: нет |
Надо сделать следующее открыть приложение и в нем нажать несколько кнопок. Для простоты возьмем notepad и в нем наберем что-нибудь.
Я делаю так
Никакого эффекта от второй строчки нет. Почему? Как можно это сделать? Такое тоже не работает (конечно, приложение запущено и его хендлер находиться)
|
||||
|
|||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 7 Всего: 372 |
Fly1410,
Во-первых посмотри что возвращает ShellExecute: http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx Во вторых: Окно может еще не создастся, лучше сделать небольшую задержку. В-третьих: Посылать надо не главному окну, а текстовому полю в нем находящемуся
|
|||
|
||||
| Fly1410 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 15.7.2006 Репутация: нет Всего: нет |
Спасибо большое за ответ.
Цель у меня такая открыть приложение нажать ctrl + p (открыть диалоговое окно печати) и нажать enter (отправить на печать). Как можно это сделать? |
|||
|
||||
| Riply |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Комодератор Сообщений: 572 Регистрация: 27.3.2007 Где: St. Petersburg Репутация: 21 Всего: 32 |
Маленькие IMHO
А, может, не стоит смотреть про ShellExecute, а сразу разбраться с CreateProcess ? Это даст нам довольно существенные преимущества: Во-первых, уходим от всяких сакраментальных чисел типа 100 в Sleep(100) и заменяем это безобразие на WaitForInputIdle ( Уж не говоря о том, что ста милисекунд может и не хватить (например, BDS 2006 Во вторых, дает возможность вести поиск окна определенного процесса связкой ( Create_Toolhelp32Snapshot(TH32CS_SNAPTHREAD, ..) + EnumThreadWindows + EnumChildWindows ) гораздо эффективнее, чем FindWindow, уж не говоря о куче неоднозначностей и двусмысленностей которые мы получали вместе с FindWindow. (В "связке" они тоже могут быть, но несравнимо меньше И напоследок, это даст нам возможность дожидаться реакции окна на нашу предыдущую команду, перед посылкой следующей. Что часто бывает очень немаловажно |
|||
|
||||
| THandle |
|
||||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 7 Всего: 372 |
http://forum.vingrad.ru/forum/topic-195477...y1410708/0.html
Это конечно лучше, но и сложней. Если у товарища Fly1410 есть желание - пусть разбирается. Я лишь немного подредактировал его код так "чтоб работал". |
||||
|
|||||
| Fly1410 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 15.7.2006 Репутация: нет Всего: нет |
Спасибо большое
|
|||
|
||||
| THandle |
|
|||
![]() Хранитель Клуба Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 7 Всего: 372 |
Fly1410, если вопрос решен, то поставь теме галочку "Пометить как решённый"
|
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |