![]() |
[Вопрос] Delphi, работа с хэндлами окон
Имеется программа с такой вот "структурой хэндлов"
http://i067.radikal.ru/0907/1a/dc140828c07d.jpg Как конкретно для такого примера правильно получить хэндл этой самой кнопки "Continue >>>"? Перепробовал массу вариантов с FindWindow, FindWindowEx, gw_HWNDNext, gw_CHILD - тщетно. Возможно что-то делаю неправильно. Пробовал получить текст из всех окон: Код:
varЕсть какие-нибудь идеи? |
writeln(d) readln что и куда читает я не пойму...
попробуй заменить на: Код:
Memo1.Lines.Add(d);Код:
varbegin GetTransHandle(); //пустота readln; //куда-то что-то читаем end. эт только догадки, может чем поможет |
Нет, к сожалению это не то совсем. Нигде там пустот не имеется, и код 200% рабочий. Вопрос заключается в том, как добраться именно к той кнопке, хендл которой изображен на рисунке структуры
З.Ы. Процедура на то и процедура, что она может не принимать никаких параметров и в отличие от функции не возвращает из себя какое-либо значение. Перечитай "Основы процедурного программирования на Delphi" |
получить хэндл кнопки?
PHP код:
... На всякий случай FindWindow Получить текст всех элементов? PHP код:
|
заморачиваться над таким? Быстрее перечислить элементы родительноского окна.
Как написал W!z@rD заюзать функции EnumChildWindows Код:
var |
W!z@rD, slesh, спасибо, но увы - история та же. Button Handle = 000000 конкретно в последнем примере. Самое интересное что Autoit Window Info показывает адекватно хендл энтой кнопки, и если бы хендлы были статичные - было бы намного проще =))) Придется видимо искать другие варианты =\
|
я сделал подобного вида форму, и нормально нашло всё. может там кнопка чуть по другому называется. попробуй запустить с таким кодом и поискать кнопку в списке.
Также может у тебя вообще окно не находится Код:
function EnumChildProc(wnd:hwnd; lParam:integer):boolean; stdcall; |
То ли меня с просони глючит, то ли х3..
Поставил ту же версию вайпа: Код:
000614CE TFmMain Hard Disk Wipe Tool 2.35 build 1178Код:
var wnd:HWND;Код:
00180DE0 TFmMain Hard Disk Wipe Tool 2.35 build 1178 |
2 МongBa† эт Spy++ от мелкомягкого.
щас найду лабу свою... http://zona-chat.narod.ru/laba_winapi.jpg Качаем проект delphi 7 ну думаю в комментариях не нуждается, все видно на картинке. посмотрите по коду че и как думаю разберетеся. |
slesh, мои бока, сорри, окно не то было... На кнопку нажал
МongBa†, ты прав. Не то окно было! Gar|k, мерси, благодаря твоему творению нашел и нажал на кнопку! Теперь вопрос нумбер два :D : Как нажать на TTabSheet с Caption "WIPE" (хендл нужной мне кнопки появляется только когда клацаю по этому табшиту)? http://i053.radikal.ru/0907/0a/b41b1b7a3018.jpg Собсна пробовал такими способами: Код:
Sendmessage(h,WM_LBUTTONDOWN,MK_LBUTTON,MakeLParam(1,1)); // нажатьКод:
if (GetWindowText(hw, wText, 255) > 0) then |
| Время: 04:11 |