Главная страница
    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.57 MB
Время: 0.043 c
2-1159533557
KyRo
2006-09-29 16:39
2006.10.15
Открывается ли файл


2-1159346762
Aleks
2006-09-27 12:46
2006.10.15
Как из программы открыть окно проводника с выделенным,нужным файл


15-1159007218
Весь в делах
2006-09-23 14:26
2006.10.15
Virtual PC и Shared Folders


2-1159446298
pavel_guzhanov
2006-09-28 16:24
2006.10.15
как просуммировать значения одного поля по условию


15-1159256648
Sandman29
2006-09-26 11:44
2006.10.15
Коммерсант-Власть





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский