|
|
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Добрый день! Имею ситуацию. Запущен notepad.exe, там открыт диалог "Сохранить как". Запускаю приложение на D7, получаю окно блокнота по h1:=findwindow(nil,pchar("Сохранить как")); Работает. Как обратиться к элементам h1? Как ваще называется класс контролла, куда имя файла выбирается? Ни TEdit, ни TComboBox не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2020, 22:22 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Beton-Karton Ни TEdit, ни TComboBox не работает Блокнот не на дельфи написан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2020, 22:32 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
wadman, конечно, не на дельфи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2020, 22:34 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Могу вот так делать SendMessage(h1, WM_CLOSE, 0, 0); окно выбора файла закрывается, но h2:=FindWindowEx(h2, 0,'BUTTON', nil); Не дает ничего Ещё момент h3:=GetWindow(h1,GW_CHILD); Даёт окно класса STATIC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2020, 22:43 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, что изображено на этой картинке? Класс контрола Edit? Нет. h1:=findwindow(nil,pchar('Сохранить как')); h2:=FindWindowEx(h1, 0,'EDIT', nil) или h2:=FindWindowEx(h1, 0,'TEdit', nil) Всегда h2=0. Нет такого контрола в этом окне Более того h3:=GetWindow(h1,GW_CHILD); h4:=FindWindowEx(h3, 0,'EDIT', nil) или h4:=FindWindowEx(h1, 0,'TEdit', nil) Всегда h4=0. C Combobox или Button такая же история ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 00:04 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Ну так EnumChildWindows в руки и смотри что там за окна и какие у них классы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 00:28 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Функция Александра возвращает такое дерево ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 00:42 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
DimaBr, Хех, вот это мощно, исчерпывающе. Снимаю шляпу и благодарю. Ящик пива уже с меня. Ещё бы отловить событие открытия диалога выбора файла в блокноте из внешнего приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 01:16 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Вы пытаетесь решить задачу, условия которой так и не рассказали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 12:16 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
DimaBrрешить задачу, условия которой так и не рассказали. Вангую: стандартная у него задача - автоматизировать чужое приложение. Ещё один автокликер. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 12:35 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Или добавить свою кнопку в стандартное окно открытия фа1ла)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 17:05 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Да, автокликер. Это аморально? Мой заказчик часто обращается в суд на сайте ГАС Правосудие. API там никакого нет. Каждое обращение подразумевает прикрепление в заявлению до 50 файлов, каждый должен быть подписан эл. подписью. Я взялся автоматизировать процесс. Выбрал вариант внешнего дельфи приложения. Приложение ловит сообщение о событии открытия окна выбора файла и заполняет путь к файлу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 17:39 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Beton-Karton на сайте ГАС Правосудие Beton-Karton до 50 файлов, каждый должен быть подписан эл. подписью Beton-Karton Запущен notepad.exe Вы файлы в блокноте подписываете? Или блокнот умеет отправлять файлы на сайт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 17:45 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Нет. Блокнот я выбрал для удобства отладки. Окно выбора файла будет открывать 1С во втроенном браузере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 17:48 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Beton-KartonЭто аморально? Это неэффективно. Раз файлы отправляет 1С, значит надо просто найти тот кусок конфигурации, который открывает окно открытия файла, и немного его переписать. А вообще-то программа на Дельфи может файлы и открыть, и подписать, и отправить совершенно самостоятельно, без левых приложений. Beton-KartonAPI там никакого нет. HTTP(S) это уже API само по себе. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 18:01 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Файлы отправляет не 1С, а JS скрипт на страничке, которую, я открываю с помощью встроенного в 1С браузера. Этот скрипт и подписывает документы. Мне нужно только заполнить контрол с именем файла в окне выбора файла. Во внешнем дельфи приложении я могу это делать (спасибо подсказкам в этот топике). Осталось отловить событие открытия окна. И всё! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 18:17 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Beton-Karton Dimitry Sibiryakov, Файлы отправляет не 1С, а JS скрипт на страничке, которую, я открываю с помощью встроенного в 1С браузера. Этот скрипт и подписывает документы. Мне нужно только заполнить контрол с именем файла в окне выбора файла. Во внешнем дельфи приложении я могу это делать (спасибо подсказкам в этот топике). Осталось отловить событие открытия окна. И всё! А нельзя этот же скрипт открывать во встроенном в дельфи приложение браузере? Более того, если это JS-скрипт, значит он выполняется на клиенте и можно посмотреть что он делает и сделать свой аналог, который будет брать файлы откуда надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 18:53 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
alekcvp, я не могу в JS напрямую в инпут с type=file вписывать имя локального файла. Только через окно выбора файла, к которому я и пытаюсь обратиться из внешней проги на дельфи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 19:12 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Чтобы изучать чужие окошки, хорошо подходит программа WinSpy++. А чтобы в них ковыряться шаловливыми ручками - функция SetWindowsHookEx. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 19:15 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Beton-Kartonя не могу в JS напрямую в инпут с type=file вписывать имя локального файла. Ну так выкинь из этой картины JS. Подписывай файл самостоятельно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 19:29 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Beton-Karton alekcvp, я не могу в JS напрямую в инпут с type=file вписывать имя локального файла. Только через окно выбора файла, к которому я и пытаюсь обратиться из внешней проги на дельфи Используй CADESCOM, подпиши и отправь сам, проще некуда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 21:10 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
alekcvp, Этот путь, конечно, самый радикальный, тем более, что я могу модифицировать DOM как угодно. Но разве не логичнее подставить в окно выбора файла то, что мне нужно, а потом пусть скрипт сам подписывает и отправляет так, задумано разработчиками. Мне достаточно только подхватить окно, впихнуть в эдит путь к файлу, потом SendMessage(h, BM_CLICK, 0, 0); Зачем огород городить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2020, 23:19 |
|
||
|
FindWindowEx
|
|||
|---|---|---|---|
|
#18+
Beton-Karton Но разве не логичнее подставить в окно выбора файла то, что мне нужно, а потом пусть скрипт сам подписывает и отправляет так, задумано разработчиками. Мне достаточно только подхватить окно, впихнуть в эдит путь к файлу, потом SendMessage(h, BM_CLICK, 0, 0); Зачем огород городить? Ну мне видится там куча подводных камней. Что будет если в момент открытия окна человек нажмёт ESC в другом приложении (такое бывало у меня)? Что будет если есть несколько браузеров и окно откроет не тот, который нужен? Что если браузер будет запущен с правами выше чем у вашего приложения? Как на такое поведение приложения отреагируют антивирусе? И т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2020, 00:47 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39968667&tid=2038225]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
173ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 496ms |

| 0 / 0 |
