Текущий архив: 2006.10.15;
Скачать: CL | DM;
Внизвзять данные из окна ЧУЖЕГО приложения Найти похожие ветки
← →
laronov (2006-09-21 12:32) [40]Elen!
Большое спасибо! заработало после того, как указал сколько надо возвращать символов...
толко я так и не понял, как работает
> FindWindowEx(Wnd,0,pchar("TEdit"),pchar("Edit123456"));
т.е. то что я указываю имя объекта - это его caption,
а что удет, когда caption изменится? как найти тогда этот же объект...? а если есть два эдита в ктором изначально одно и тоже лежит?
← →
Elen © (2006-09-21 15:22) [41]
> laronov
Наверное проблема в том, что в винде изначально не предусматривали легкого способа достучаться до компонентов, хотя некоторые из них и являются окнами. Но в общем есть и другие способы... Тебе никто не запрещает изучать и развиваться...
← →
Ketmar © (2006-09-21 15:24) [42]>[41] Elen(c) 06-09-21 15:22
>Наверное проблема в том, что в винде изначально
>не предусматривали легкого способа достучаться до
>компонентов
более того -- "в винде" и нет вовсе никаких "компонентов" (в дельфийском понятии).
← →
Elen © (2006-09-21 15:26) [43]
> Ketmar
Это я образно... чего это микрососы не сделали такого?
← →
Ketmar © (2006-09-21 16:03) [44]>[43] Elen(c) 06-09-21 15:26
>Это я образно... чего это микрососы не сделали
>такого?
не знаю, чего "такого". всё, что надо, там есть.
← →
laronov (2006-09-21 16:55) [45]Всем спасибо! разобрался :)))
теперь встал вопрос как вытащить данные из чужего DBGrid"а, на сколько я понимаю это совсем не тривиальная задача...?
← →
Ketmar © (2006-09-21 16:59) [46]>[45] laronov 06-09-21 16:55
>теперь встал вопрос как вытащить данные из чужего DBGrid"а зачем? не проще их сразу из базы брать?
← →
laronov (2006-09-21 17:16) [47]
> зачем? не проще их сразу из базы брать?
Дело в том, что база закрыта (т.е. доступ к ней есть только у этой программы). Взламывать ее или пытаться к ней подключиться просто нельзя.
то что проще- это я понимаю...
← →
Боб (2006-09-22 14:07) [48]Если кого-то еще интересует как
взять данные из окна ЧУЖЕГО приложения :
есть еще такие API-функции (пояснения в Win SDK) ;
GetClassName(H2, // handle of window
P1 , // address of buffer for class name
90 // size of buffer, in characters
);
Она выдает имя класса окна. Напр Р1=TEdit.
GetWindowText(H2, // handle of window
P2 , // address of buffer for class name
90 // size of buffer, in characters
);
Смысл понятен. (она сама генерит WM_GETTEXT )
В том же SDK написано :
"This function cannot retrieve the text of an edit control in another application."
То бишь - неззя!
Однако, если чужая прога написана на Delphi, функция текст достает!
А мне попалась "Сишная", из которой так и не удалось выдрать текст.
У меня есть тестовый проектик (корявый, но работающий).
Программа обегает все дочерние окна главного окна и пытается выдрать
из них тексты.
Могу выложить куда-нибудь, или прямо сюда, или на мыло...
А если кому-то удалось справиться с "Сишником" - поделитесь
пожалуйста опытом.
С уважением. Боб
← →
Сергей М. © (2006-09-22 14:18) [49]
> laronov (21.09.06 17:16) [47]
> при помощи этой программы
Она случаем не являет собой COM/OLE-сервер автоматизации ? Может быть стоит проанализировать док-цию и имеющиеся модули на предмет сего, прежде чем пороть горячку ?
Я к тому, что решение задачи может лежать прямо под ногами и при этом не требовать ни взлома ни извращений а-ля сабж ..
← →
laronov (2006-09-25 10:29) [50]
> Она случаем не являет собой COM/OLE-сервер автоматизации
> ? Может быть стоит проанализировать док-цию и имеющиеся
> модули на предмет сего, прежде чем пороть горячку ?
> Я к тому, что решение задачи может лежать прямо под ногами
> и при этом не требовать ни взлома ни извращений а-ля сабж
> ..
нет, она обращается к оракловой базе напрямую....
← →
Сергей М. © (2006-09-25 10:42) [51]
> laronov (25.09.06 10:29) [50]
> она обращается к оракловой базе напрямую
Да хоть к господу богу пусть обращается "напрямую") ..
Вопрос, является ли та самая программа COM/OLE-сервером автоматизации, остается открым.
← →
sniknik © (2006-09-25 11:13) [52]никакая программа не может запретить доступ к базе админу (с правами админа)... если доступ юзеру всетаки запрешен (прав нет) и админ его не дает, а разрешает только работать в указаной программе (т.е. данные по какойто причине закрыты) то любые действия, что попытка конекта к базе, что снятие данных с окна программы будут взломом.
поэтому надо либо договариваться и делать нормально, либо оставить эту затею...
← →
laronov (2006-09-25 12:36) [53]
> никакая программа не может запретить доступ к базе админу
> (с правами админа)... если доступ юзеру всетаки запрешен
> (прав нет) и админ его не дает, а разрешает только работать
> в указаной программе (т.е. данные по какойто причине закрыты)
> то любые действия, что попытка конекта к базе, что снятие
> данных с окна программы будут взломом.
> поэтому надо либо договариваться и делать нормально, либо
> оставить эту затею...
Я думал что на этом форуме все-таки обсуждаеются технические возможности реализации той или иной идеи, а не какие-то моральные.
Если вас интересует зачем не это надо, то могу пояснить.
Есть база и программа, которую разработана для моей организации другая компания, давать доступ к базе они не хотят, а в договоре на разработку это не указано. мне же надо в другую базу заносить теже данные что и заносят в эту(при этом, когда заносят в эту базу данные, происходит поиск из соответствующих справочников, которые и отображаются в DBGrid).
т.о. данные - мои, а вот хранилище не мое, вот и пытаюсь уменьшить работу операторам, которым придется работать с двумя базами.
← →
Сергей М. © (2006-09-25 12:47) [54]
> думал что на этом форуме все-таки обсуждаеются технические
> возможности реализации той или иной идеи
угу ... а ты при этом упорно не желаешь привести результаты своих исследований на возможность доступа к "чужой" программе средствами OLE/COM ..
> априори считается что извлекать данные из этой базы можно
> ТОЛЬКО при помощи этой программы
Кем считается ?
СУБД какая ?
← →
laronov (2006-09-25 12:50) [55]
> Кем считается ?
> СУБД какая ?
мной :)
СУБД - оракл
← →
Сергей М. © (2006-09-25 12:56) [56]
> мной
Уф-ф-ф-ф ... уже легче... а то я уж было смирился с мыслью, что это было одним из постановлений ЦК ВЦСПС)
> оракл
И что ?
Ты не можешь подключиться к этой оракловой базе иными инструм.средствами, нежели та самая вражеская программа, которая "априори" не пущает тебя туда ?
← →
laronov (2006-09-25 13:02) [57]
> И что ?
> Ты не можешь подключиться к этой оракловой базе иными инструм.
> средствами, нежели та самая вражеская программа, которая
> "априори" не пущает тебя туда ?
там идет журналирование....и если это всплывет, то может появиться куча проблем
в общем по решению начальства было сказано либо через это программку, либо никак....
← →
Сергей М. © (2006-09-25 13:08) [58]
> по решению начальства было сказано либо через это программку,
> либо никак
Ну тогда, с учетом того что начальству в зад не заглядывают, предлагаю альтернативу - перехват OracleAPI-вызовов со стороны вражеской программулины.
← →
sniknik © (2006-09-25 13:48) [59]laronov (25.09.06 12:36) [53]
laronov (25.09.06 13:02) [57]
в общем понятно, проблема надуманная, т.к. если вы купили программу и нигде особо не оговаривается то значит и база ваша, по другому просто не может быть. и не давать вам доступ "они" попросту не могут, не в их силах, это дело вашего админа (или ваше если вы за него).
другое дело что запись в эту базу сторонней программой может нарушить работу этой... логику то вы не знаете, но вот чтение ничем повредить не может...
и еще другое дело, что начальство не разбираясь в конкретно работе/тонкостях чаще всего запрещает все. от греха.
а вот ваше дело, как специалиста, обьяснить ему (начальству) что к чему и добится чтобы делать как надо/правильно, а не замороченно/нестабильно/хакерскими методами которые повредят основной программе гораздо скорее чем просто доступ к базе.
можете конечно и дальше пытатся "технически реализовывать ту или иную идею", но только чтобы те кто вам отвечает тоже понимали что эта реализация мягко говоря нестандартна/и не нужная в итоге.
← →
sniknik © (2006-09-25 13:53) [60]p.s. а вот если предположить что пишется не утильная прога, а прога шпион, перехватывающая ввод в эту прогу, то ваш подход оправдан (ни к начальству ни к админу уже не подойдеш...), но не законен...
Страницы: 1 2 вся ветка
Текущий архив: 2006.10.15;
Скачать: CL | DM;
Память: 0.57 MB
Время: 0.043 c