![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
По поводу получения 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 не содержит данных. Он их отображает.