Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
Такой вопрос. На мой взгляд из разряда фантастики. Но тем не менее : желание начальника - закон. Запущены 2 разных приложения с выводом на экран в двух разных окнах. Все это под Windows. В каждом из этих окон есть поле, содержащее некое число. Не имея доступа к исходному коду программ, необходимо каким-то образом выграбить (скопировать) два числа из двух разных окон этих двух разных приложений и произвести их суммирование с занесением результата в некое поле 3-его собственного приложения. Весь этот процесс должен быть инициирован пользователем при нажатии определенной комбинации клавиш. Возможно ли такое сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 13:15 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
делаем ставки!!! я за то, что НЕТ :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 13:21 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
единственный способ получить чтото от другого приложения - отправить ему сообщение, а так как это сообщение нестандартное, то и получается - БОРОДА ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 13:22 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
Oldm@nВозможно ли такое сделать? Cкорее всего. Хотя повозиться придется, и преизрядно. Собственно, средства автоматического тестирования примерно так и работают. Для взятия значения из полей я бы посмотрел, не удастся ли заставить приложение выполнить Ctrl-C. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 13:53 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
softwarerДля взятия значения из полей я бы посмотрел, не удастся ли заставить приложение выполнить Ctrl-C. можно еще посмотреть, не удастся ли приложение выполнить Ctrl-A ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 13:59 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
1) Находим окно приложения (FindWindow) 2) Находим окно Edit (FindWindowEx) 3) Посылаем ему EM_GETTEXTEX ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 14:17 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
Находим хандл окна,после находим поле (т.е где там ваши числа,тоже ищется по какому-то ID),далее копируются и всё.. Не могу к сожалению привести код,но это реально на WinApi .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 15:05 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
Lelikk3) Посылаем ему EM_GETTEXTEX С изрядной вероятностью контрол в ответ посылает нас на :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 17:22 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
В своё время брутофорсил так одну программу ( пароль из 5 знаков ). Я думаю, что если можно записать в поле текст, то и вытащить из него информацию получится. Работало, приблизительно, как написал уважаемый Lelikk . Насколько помню, проблема была как-раз со вторым пунктом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 18:25 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
softwarer Lelikk3) Посылаем ему EM_GETTEXTEX С изрядной вероятностью контрол в ответ посылает нас на :)) И чего это он нас вдруг посылает? Это стандартное сообщение винды, собственно это основной способ взаимодействия с контролом вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 20:43 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
Lelikk softwarer Lelikk3) Посылаем ему EM_GETTEXTEX С изрядной вероятностью контрол в ответ посылает нас на :)) И чего это он нас вдруг посылает? Это стандартное сообщение винды, собственно это основной способ взаимодействия с контролом вообще. Сорри, для Edit будет WM_GETTEXT, EX_... -- это для RichEdit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 20:47 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
Я такую прогу писал. Делает вот чего - имеется бухгалтерия в какой то хрени самописной код ессно отсутствует, надо при вводе в табличку автоматом посылать в банк запрос насчет того что чеку можно доверять или нет. Прога тягает данные из таблички при вводе и вбивает его в 1C. Работает следующим макаром - никаких там WM_GETTEXT, если окно нестандартное (например Excel) то фиг ты получишь данные по этой мессе. Единственный способ - хук. Причем самый гемор даже не хук а настройка нужных окон. Сделано типа как в Spy++ - перетягиваем курсор на нужное окно, и запоминание идет по куче параметров. Потом глобальный хук и сравниваем параметры вводимых окон. Проверялось на куче прог, единственно где не работает - в консольных окнах, ну и в IE надо хук настраивать по скриптовым тегам. если нужна подробная консультация стучись в асю 822228 с уважением LOM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2006, 18:59 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
Зы: Вот есть более непонятная ситуация с WM_GETTEXT Создаю "EDIT" в неюникодовой проге через юникодовый CreateWindowExW Цепляю ему юникодовый шрифт Arial - все вбивается на трех языках и корректно отображается. Но никак зараза не хочет возвращать юникод ни через SendMessageW ни через CallWindowProcW ни через что. Вот реально ли это или все таки дас ист фантастишъ? С уважением LOM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2006, 19:09 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
Беру данные из других программ при помощи новой версии Automate 6. Только из одной. Она умеет данные из полей брать, умеет проверять наличие окна приложения. -- Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 06:46 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
Oldm@n Все это под Windows. В каждом из этих окон есть поле, содержащее некое число. Не имея доступа к исходному коду программ, необходимо каким-то образом выграбить (скопировать) два числа из двух разных окон этих двух разных приложений и произвести их суммирование с занесением результата в некое поле 3-его собственного приложения. Если это виндовые приложения и поля - стандартные контролы Win32, то это можно сделать с помощью FindWindow и GetWindowText или других функций. Искать надо диалог (форму ) по каким-то неформальным признакам (обычно - это приложение и заголовок окна), конкретный контрол на ней - по идентификатору контрола, его можно легко вычислить взяв в руки Spy++ от Visual Studio, там же можно увидеть класс окна, а главное - является ли он стандартным контролом. Ну а дальше уже - логика вашего приложения. Если же это какой-то невиндовый контрол, например, ActiveX, то уже хуже -- текст получить нельзя. Хотя в случае ActiveX, Если есть TLB от него, можно попробовать подергать какие-то его свойства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 19:40 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
LOM2KЗы: Создаю "EDIT" в неюникодовой проге через юникодовый CreateWindowExW Цепляю ему юникодовый шрифт Arial - все вбивается на трех языках и корректно отображается. Но никак зараза не хочет возвращать юникод ни через SendMessageW ни через CallWindowProcW ни через что. Вот реально ли это или все таки дас ист фантастишъ? Там еще надо вызвать функцию, которая устанавливает интерфейс с окном в UNICODE или ANSI. Функцию не помню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2006, 19:42 |
|
||
|
Копирование и распознавание информации из окон "чужих" приложений
|
|||
|---|---|---|---|
|
#18+
sOldm@n Все это под Windows. В каждом из этих окон есть поле, содержащее некое число. Не имея доступа к исходному коду программ, необходимо каким-то образом выграбить (скопировать) два числа из двух разных окон этих двух разных приложений и произвести их суммирование с занесением результата в некое поле 3-его собственного приложения. Если это виндовые приложения и поля - стандартные контролы Win32, то это можно сделать с помощью FindWindow и GetWindowText или других функций. Искать надо диалог (форму ) по каким-то неформальным признакам (обычно - это приложение и заголовок окна), конкретный контрол на ней - по идентификатору контрола, его можно легко вычислить взяв в руки Spy++ от Visual Studio, там же можно увидеть класс окна, а главное - является ли он стандартным контролом. Ну а дальше уже - логика вашего приложения. Если же это какой-то невиндовый контрол, например, ActiveX, то уже хуже -- текст получить нельзя. Хотя в случае ActiveX, Если есть TLB от него, можно попробовать подергать какие-то его свойства. Посмотрите на словари, например тотже Lingvo. Я делал такое - проблема действительно возникает с офмсом начиная с 2000 (97 работает нормально) и Visual studio (даже 6) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2006, 11:19 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=33404157&tid=1347145]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
126ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 414ms |

| 0 / 0 |
