Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

По поводу получения handle [D6, Win95/98, Win2k, WinXP]


Scaut ©   (2002-06-21 17:24:00) 

Здравствуйте мастера!
Подскажите, пожалуйста, как можно получить handle некоего control находящегося под курсором мыши...
И возможноли перекачать данные из dbgrid внешнего приложения в свой??? (можно не в DBGrid, а хотябы просто получить прочитать их в переменные)...
Если можно пример плиз...


December24   (2002-08-05 16:08:00) [1]

То, что скрыто звёздочками, можно вытащить с помощью посылки сообщения WM_GETTEXT данному окну, но только под 98/95 (для MFC), а с Дельфийскими прогами всё ещё проще - такие "пароли" вытягиваются даже из-под НТ.
Только недавно всем этим развлекался...
Правда, я столкнулся с другой проблемой: если перехватывать мышу с помощью SetCapture/ReleaseCapture, то после одного мышиного клика сообщения уже не доходят до твоей проги... Обходить это было в лом, да и не надо - одного клика хватает :-}
Проверено на RAS и The Bat.


Bachin   (2002-08-05 15:42:00) [2]

2cgbs (05.08.02 15:08)
в том виде как ты написал - конечно же нет!
сам подумай, откуда другое приложение знает, что такое TWinControl, еще и неизвестно с каких делфей! :)))


cgbs   (2002-08-05 15:08:00) [3]

uses
Controls;
FindVCLWindow (const P : TPoint) : TWinControl;

begin
P:=getcursorpos;
label1.caption:=(FindVCLWindow( P ) as TEdit).text;
end;

антыресна сработает ли для подглядывания пароля в аутлуке/любом другом приложении (при условии что он набран, тока отображается зв:ездочками)?


Scaut   (2002-06-25 09:28:00) [4]

Все понятно большое санкс.....


Юрий Зотов   (2002-06-24 23:50:00) [5]

> Scaut

Короче, контролы - это тоже окна. Теперь ясно?

Правда, Delphi расширяет это понятие (вводит графические контролы), но WindowFromPoint всегда даст хэндл именно окна. Любого - хоть формы, хоть не формы, хоть контрола, хоть десктопа (десктоп - это тоже окно). Просто того окна, которое содержит указанную точку, вот и все.


Cobalt   (2002-06-24 21:35:00) [6]

Исходники устанавливаются вместе с Дельфи ( конечно, если отметишь этот пункт при установке (тип установки - выборочный Custom(англ.), а еще желательно установить весьхелп)
И, когда подведёшь курсор к к.-л. компоненту, и ткнёшь F1, откроется окно справки, в котором увидишь что-то вроде:
TTable is a dataset component that encapsulates a database table.

Unit
dbtables

Description

Use TTable to access data in a single database table using the Borland Database Engine (BDE).

Это и есть имя модуля, в котором расположен исходник. Сами исходники (сурцы - сленг.) распологаются в папке "$Delphi\Source"
P.S.
>>Так ведь народ говорит что я таким образом получу только handle окна, а как тогда всетаки получить handle некоего control (к примеру edit, ComboBox, Button )находящегося под курсором мыши в этом окне?
Контрол - это только обёртка для окна, т.е. handle, который ты получаешь от контрола, на самом деле handle окна. К стандартным конотролам (т.е. те, которые на вкладках Standard components, Additional components, Win32 components ) можно обращаться через сообщения (см. хелп Win32 Programmer"s Reference).
Для передачи строк необходимо внедряться в адресное пр-во чужой проги(с помощью хуков) - это если использовать не стандартное сообщение WM_GETTEXT, а к.-нить другое, использующее текст.


Игорь Шевченко   (2002-06-24 17:47:00) [7]

uses
Controls;
FindVCLWindow (const P : TPoint) : TWinControl


Anatoly Podgoretsky   (2002-06-24 17:26:00) [8]

А это и есть окна "(к примеру edit, ComboBox, Button )"


Scaut   (2002-06-24 17:16:00) [9]

Ау народ помогите плиз.....


Scaut   (2002-06-24 12:00:00) [10]

Если можно с примерчиками плиз....


Scaut   (2002-06-24 12:00:00) [11]

Cobalt >> А где можно взять эти исходники? Мож ссылочка есть? И неужели никто непробовал выдирать данные из других приложений прямо из формы из различных controlов типа edit, dbgrid, combobox....???? Насамом деле я DBGrid я привел как пример потому как в моем случае там какойто совсем другой компонент... Просто DBGrid помоему самый близкий к нему был...

Anatoly Podgoretsky >> Так ведь народ говорит что я таким образом получу только handle окна, а как тогда всетаки получить handle некоего control (к примеру edit, ComboBox, Button )находящегося под курсором мыши в этом окне?


Anatoly Podgoretsky   (2002-06-24 10:54:00) [12]

WindowFromPoint


Scaut   (2002-06-24 10:41:00) [13]

А как тогда всетаки получить handle некоего control (к примеру edit, ComboBox, Button )находящегося под курсором мыши?


Cobalt   (2002-06-22 10:37:00) [14]

получится handle окна
А еще посмотри исходники DBGrid-а


Scaut   (2002-06-21 17:56:00) [15]

Да и это получится handle окна или любого контрола находящегося в этом окне??


Scaut   (2002-06-21 17:53:00) [16]

Спасибо за handl...
А как тогда достать данные отображаемые в dbGrid (он находится в чужом приложении) ???


Виктор Щербаков   (2002-06-21 17:41:00) [17]


> Подскажите, пожалуйста, как можно получить handle некоего
> control находящегося под курсором мыши...

Хэндл окна под курсором мыши можно получить с помощью WindowFromPoint.

> И возможноли перекачать данные из dbgrid внешнего приложения
> в свой

DBGrid не содержит данных. Он их отображает.


Наверх

Титульная страница Поиск, карта сайта Написать письмо