Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.59 MB
Время: 0.046 c
15-1159095853
DillerXX
2006-09-24 15:04
2006.10.15
Гении


15-1158674598
Gerlon
2006-09-19 18:03
2006.10.15
Shareware


15-1158737001
pasha_golub
2006-09-20 11:23
2006.10.15
Вакансии в Москве


4-1149084248
Призрак
2006-05-31 18:04
2006.10.15
CreateThread и GetMessage - error


15-1159230644
race1
2006-09-26 04:30
2006.10.15
Запись логов на диск