Помоги с проблемой Есть программа написанная на Delphi. При запуске появляется модельное окно для регистрации. В этом окне 2 поля ввода, первый содержит некий номер (привязка к ПК), второй для ввода серийника. И два Lebel/Надпись (static text наверное) причем первый неактивен. Нужно активировать надпись, но программы типа WinSpy не находят эти надписи. При наведение указателя вторая надпись меняет цвет (полагаю все же эта объект со своим handle-ом). Каким образом можно получить его handle для активации? Если утилита для манипуляции со всеми объектами формы т.е. не только окнами но и элементами этого окна?
sm123 а почему сразу же Label. может они просто текст выводят с помощью TextOut и контролируют позицию мышки относительно этой надписи (когда мышка над надписью, то меняют ее цвет) Код (Text): ;ecx = pPOINT - позиция мышки над формой ;esi = pRECT - область над которой должен находиться курсор ;ebx = pTEXT - текстовая строка для вывода ;edi = pPOINT - позиция для вывода текста ;ebp = DC - контекст устройства для рисования текста mov eax, [ecx] cmp eax, [esi] jc no cmp eax, [esi+8] jnc no mov eax, [ecx+4] cmp eax, [esi+4] jc no cmp eax, [esi+12] jnc no call SetTextColor, ebp, TextUnderCursor jmp ok no: call SetTextColor, ebp, TextColor ok: call TextOutA, ebp, [edi+0], [edi+4], ebx аналог на делфи procedure TForm1.OnPaint(...) begin if (Mouse.CursorPos.X<TextOutRect.left)and(Mouse.CursorPos.X>TextOutRect.Right)and(Mouse.CursorPos.Y<TextOutRect.Top)and(Mouse.CursorPos.Y>TextOutRect.Bottom) then SetTextColor(Canvas.Handle, TEXTUNDERCURSOR) else SetTextColor(Canvas.Handle, TEXTCOLOR); TextOutA(Canvas.Handle, TextOutPos.X, TextOutPos.Y, 'текст'); end;
Разумеется не находят. Label и StaticText - не синонимы. Label - контрол, не имеющий собственного окна (и хэндла окна, соответственно, тоже), и активировать его без патчинга процесса либо файла самой программы не получится.
sm123 Меняется Font.Color по событию OnMouseEnter и OnMouseLeave. Чтобы нарисовать что-то на форме, достаточно иметь её HDC. А аналогичный компонент, который создаёт окно - это TStaticText, вот у него есть хэндл и вся фигня.
sm123 Найдите в проге то место в котором она согласная с введенными значениями и посмотрите что она делает с формой и сделайте так же/ TLabel, TStatic ... я словей-то таких не знаю.