On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 4011
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.03.15 13:34. Заголовок: Как считать данные в GET из другой программы ?


Всем привет.
Мне нужно считать данные находящиеся в GET другой программы.
Нашел на Дельфи как это делать http://www.oivt.ru/blog/delfi-poluchenie-teksta-iz-chuzhogo-okna

Как это сделать на МиниГуи ?

hWnd := FindWindowEx(,,, "Ammyy Admin v3.5 - Free" )
// .......... А дальше как ?



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 20 [только новые]


постоянный участник




Пост N: 486
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 02.03.15 14:07. Заголовок: Andrey пишет:Как это..


Andrey пишет:
 цитата:
Как это сделать на МиниГуи ?


если обе проги MiniGui и твои, то обмен можно организовать по посылке WM_COPYDATA (запрос\ответ).
если другая прога, то можно пойти по пути как в AutoIt3, Au3Info.exe позволяет снять данные с конролов проги (если разберет их) и используя их (данные) в скрипрте AutoIt3 организовать доступ к контролам (чтение\запись), надо знать как повторить это на winapi, для использования в hb

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 292
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 02.03.15 14:09. Заголовок: Вероятно - getwindow..


Вероятно - getwindowtext(hEdt)

Если не получится, то через SendMessage

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4013
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.03.15 14:13. Заголовок: fil пишет: Вероятно..


fil пишет:

 цитата:
Вероятно - getwindowtext(hEdt)

Если не получится, то через SendMessage



А как конкретно ?
hWnd := FindWindowEx(,,, "Ammyy Admin v3.5 - Free" )
// .......... А дальше как ?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 293
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 02.03.15 14:29. Заголовок: Ну ты же наше хендл ..


Ну ты же наше хендл этого get'a hWnd := FindWindowEx(,,, "Ammyy Admin v3.5 - Free" )

далее tt:=getwindowtext(hEdt) (ежели эта ф-я есть в МиниГуи) Иначе смотри в гугле как это делается через по сылку контролу SendMessage(hWnd, WM_GETTEXT


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4570
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 02.03.15 14:46. Заголовок: Andrey Примеры что ..


Andrey
Примеры что ли глянь
MiniGUI\SAMPLES\Advanced\ExternalApp\
MiniGUI\SAMPLES\Advanced\ExternalApp_2\

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4015
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.03.15 14:48. Заголовок: Dima пишет: Примеры..


Dima пишет:

 цитата:
Примеры что ли глянь


Спасибо ! То что нужно !

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4017
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.03.15 16:10. Заголовок: Не совсем то. Не пон..


Не совсем то. Не понятно как считать с окна.

Нашёл вот тему: http://www.transl-gunsmoker.ru/2008/11/getwindowtext.html
И пусть у нас есть процесс Б, у которого есть описатель окна (hwnd = MyControl.Handle), созданного процессом А (не важно, как он его получил):
var
szBuf: array[0..79] of Char;
...
GetWindowText(hwnd, szBuf, 80);

Этот код вернёт szBuf = 'Frappy', потому что это именно та строка, которая хранится в "особом месте".
Однако:

SendMessage(hwnd, WM_GETTEXT, 80, LPARAM(@szBuf));

Вернёт szBuf = 'Booga!'.

Как понять LPARAM(@szBuf) ? Какой синтаксис для МиниГуи нужен ?


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4571
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 02.03.15 16:14. Заголовок: Andrey пишет: Не со..


Andrey пишет:

 цитата:
Не совсем то. Не понятно как считать с окна.


Я конечно не спец но кажется мне что надо обойти все контролы нужного окна.
Попробуй
SendMessage(hwnd,WM_GETTEXT,250,@_string)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 294
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 02.03.15 16:42. Заголовок: Сначала находишь окн..


Сначала находишь окно родителя hWnd:=FindWindow(
Затем в нем FindWindowEx(hWnd перебираешь

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4572
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 02.03.15 16:55. Заголовок: Можно еще проще. Есл..


Можно еще проще. Если нашел окно "Ammyy Admin v3.5 - Free" , затем
Client ID читаем из реестра.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4018
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.03.15 17:00. Заголовок: Dima пишет: затем C..


Dima пишет:

 цитата:
затем
Client ID читаем из реестра.



Как ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4019
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.03.15 17:08. Заголовок: fil пишет: Сначала ..


fil пишет:

 цитата:
Сначала находишь окно родителя hWnd:=FindWindow(
Затем в нем FindWindowEx(hWnd перебираешь


Вот переделал пример Григория - https://cloud.mail.ru/public/aaf4a7178a58/ExternalApp_demo2.prg
Не работает...

Кстати в Win8 пример не работает (CAPTION 'Minimize/Maximize Notepad') !
Заголовок окна - "Безымянный — Блокнот", и в WinXP SP 3 тоже такой же заголовок, там тоже не работает.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 487
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 02.03.15 17:51. Заголовок: Andrey пишет: Кстат..


Andrey пишет:

 цитата:
Кстати в Win8 пример не работает


ВСЕ работает. Чудес на свете не бывает, обратимся к "переработанному" исходнику

FUNCTION MinimizeIt()
...
IF ( n := aScan( aTitles, {|e| APP_TITLE_EN $ e[1] } ) ) > 0
...

теперь смотрим что определено #define APP_TITLE_EN 'Notepad'

Как думаешь отреагирует AScan при сравнении 'Notepad' и 'Безымянный — Блокнот'

ЗЫ Искать лучше не по Безымянный - Блокнот а просто 'Блокнот'

т.е. в твоем примере конструкция aScan( aTitles, {|e| APP_TITLE_RU $ e[1] } ) - сработает




Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4022
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 02.03.15 18:28. Заголовок: Haz пишет: ВСЕ рабо..


Haz пишет:

 цитата:
ВСЕ работает. Чудес на свете не бывает, обратимся к "переработанному" исходнику


Понятно.

А дальше как в ReadGetIt() ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4031
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 04.03.15 12:42. Заголовок: Вот есть исходник на..


Вот есть исходник на С++ для чтения ID.
Как подключить его отдельной функцией к МиниГуи (то бишь Харбору) ?
Или полностью переписать на МиниГуи, но там такие фунции в которых я не разбираюсь...
https://gist.github.com/skynetxxx/f50524c07f121f47e9fc

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4053
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.03.15 21:29. Заголовок: Разобрался я с этой ..


Разобрался я с этой проблемой. Вот текст, кому интересно.
https://gist.github.com/VerchenkoAG/40c50f644459caa7ce3c

Сделал отдельную ОДНУ программу для своего удаленного подключения к юзерам.
Так как AA_v3.5.exe больше 500Кб (линкер BCC 5.5 не тянет в ресурсы), пришлось за архивировать zip-ом и включить в ресурсы к себе в программу, включил настройки этой проги тоже в ресурсы.
Как троян получается... Зато ничего дополнительного тащить не надо.
Теперь юзер одну кнопку тычет, ID-ник его ко мне на сайт приходит и я могу подключаться к нему.
Вообще неплохая программа эта "Ammyy Admin v3.5 - Free", можно и лицензию купить.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4596
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.03.15 22:25. Заголовок: Andrey пишет: Тепер..


Andrey пишет:

 цитата:
Теперь юзер одну кнопку тычет, ID-ник его ко мне на сайт приходит и я могу подключаться к нему.


Ну как бы ID можно передать по SMS , по трубе сказать , передать по ICQ , МайлРу агенту и тд и тп.
По ходу на AMMI 3.2 не работает , ну это и понятно почему , так как cAppTitle := "Ammyy Admin v3.5 - Free" вшито.

PS
Проверил на TeamViewer - работает. Только нужно знать какую строку считать.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4054
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.03.15 23:35. Заголовок: Dima пишет: Ну как ..


Dima пишет:

 цитата:
Ну как бы ID можно передать по SMS



Я его еще на экран пользователю вывожу БОЛЬШИМИ ЦИФРАМИ !


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 4597
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 13.03.15 23:41. Заголовок: Andrey пишет: Я его..


Andrey пишет:

 цитата:
Я его еще на экран пользователю вывожу БОЛЬШИМИ ЦИФРАМИ !


Это я понял и выводить можно чернобурофиолетовым. А смысл ?


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4055
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.03.15 23:47. Заголовок: Dima пишет: А смыс..


Dima пишет:

 цитата:
А смысл ?



Да юзера разные попадаются... Пока добьёшься от них нужных действий по телефону, готов прибить этого юзера...
Коронная фраза от юзера: такого раньше не было...
Из-за этого и делаешь всякую приблуду себе, чтобы не зависить от юзера.
Себе нервы бережешь !

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 44
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет