Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Вниз

управление внешней програмой   Найти похожие ветки 

 
Wolferio ©   (2006-03-10 16:31) [0]

Добрый день

У меня вопрос: как мне можна управлять  внешней программой из под делфи. например я запустил внешнюю программу, после чего мне нужно сделать ряд операций из под неё например нажать програмно кнопку F10, потом Shift+F3 после чего вийти из нее.
Коротше говоря как мне управлять внешней програмой програмно!


Спасибо!


 
Сергей М. ©   (2006-03-10 16:35) [1]

Может не стоит горячиться насчет кнопок ?
Может "внешняя программа" реализована как сервер автоматизации ?


 
Jeer ©   (2006-03-10 17:38) [2]

Да напиши свою, пока не разобрался с чужой.


 
Кашперук Иван   (2006-03-10 17:42) [3]

Это реализуется с помощью отправки сообщений окну этой самой программы. Примеров здесь много, поищите. Но проблема здесь именно в том, чтобы знать, класс или caption этой программы, если это Оконное приложение, конечно-же, и того элемента, в который вы хотите что-то ввести, к примеру


 
Morgoth_   (2006-03-11 00:01) [4]

FindWindow(nil, "загаловак тута"); - искать окно
 FindWindowEx - искать элемент по его классу

послать Enter
 PostMessage(H,WM_KeyDown,VK_RETURN,0);
 PostMessage(H,WM_KeyUp,VK_RETURN,0);

для нажатия сочетания клавиш, например Ctrl + S я делал так:
   keybd_event(VK_CONTROL, 0, 0, 0); // опускаем Ctrl
   keybd_event(Ord("S"), 32, 0, 0);      // опускаем S
   keybd_event(Ord("S"), 32, KEYEVENTF_KEYUP, 0); // поднимаем S
   keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0); // поднимаем Ctrl
Почему именно так не помню, по-моему из-за программы, которой надо было управлять.


 
Eraser ©   (2006-03-11 02:08) [5]


> Wolferio ©   (10.03.06 16:31)

название внешней программы - в студию.


 
Anatoly Podgoretsky ©   (2006-03-11 09:30) [6]

Партия дай порулить.


 
IceBeerg ©   (2006-03-11 12:16) [7]

Morgoth_   (11.03.06 0:01) [4]
PostMessage(

А почему не SendMessage(... я это, не конкретно про Enter?


 
Morgoth_   (2006-03-13 10:18) [8]

> А почему не SendMessage(... я это, не конкретно про Enter?

Я сначала и писал SendMessage, но не работало, может из-за особенностей программы... А разница между ними, насколько я понял перевод, в том, что SendMessage ставит сообщение в очередь, а при PostMessage выполняется немедленно.
Если ошибся, то может кто поправит?


 
Wolferio ©   (2006-03-20 19:12) [9]

Что делать когда программа DOSовская? :-))


 
StriderMan ©   (2006-03-20 19:26) [10]


> Я сначала и писал SendMessage, но не работало, может из-
> за особенностей программы... А разница между ними, насколько
> я понял перевод, в том, что SendMessage ставит сообщение
> в очередь, а при PostMessage выполняется немедленно.
> Если ошибся, то может кто поправит?


Наоборот


 
0bsid ©   (2006-03-21 14:29) [11]


> > А почему не SendMessage(... я это, не конкретно про Enter?
>
>
> Я сначала и писал SendMessage, но не работало, может из-
> за особенностей программы... А разница между ними, насколько
> я понял перевод, в том, что SendMessage ставит сообщение
> в очередь, а при PostMessage выполняется немедленно.
> Если ошибся, то может кто поправит?

Post как бы получает уведомление о том, что сообщение послано, а Send посылает и пофиг, получит ли его программа


 
clickmaker ©   (2006-03-21 15:10) [12]


> Post как бы получает уведомление о том, что сообщение послано,
>  а Send посылает и пофиг, получит ли его программа

почти наоборот
Post получает уведомление, что сообщение поставлено в очередь (но не факт, что получено)
Send вызывает WndProc, поэтому прога его по-любому получит, но ее право - проигнорировать


 
Morgoth_   (2006-03-21 15:35) [13]

спасибо за поправки...
есть в управлении чужими программами еще один интересный момент: если нужная кнопочка лежит на панельке, которая лежит на еще одной панельке (и т.д.), до добираться до нее приходится перебирая рекурсией все панели и панели а панелях )))
есть ли другой способ?


 
clickmaker ©   (2006-03-21 15:38) [14]


> есть ли другой способ?

нет


 
Morgoth_   (2006-03-21 15:50) [15]

так я и думал, ну и ладно )



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.011 c
3-1141902097
anubis
2006-03-09 14:01
2006.04.30
Экспорт таблицы В Excel


15-1144421627
Сатир
2006-04-07 18:53
2006.04.30
Конфликт двух клиент-серверных приложений


15-1144171319
Карелин Артем
2006-04-04 21:21
2006.04.30
Сотовый фотоаппарат.. Хорошо или нет??


2-1145082227
pavlin_pah
2006-04-15 10:23
2006.04.30
Stringgrid и Scroll


1-1143018225
Andrey.Ru
2006-03-22 12:03
2006.04.30
Продолжительность m2v файла??????





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский