Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2012, 19:13   #1
ClMlD
Форумчанин
 
Аватар для ClMlD
 
Регистрация: 09.07.2011
Сообщений: 185
По умолчанию HWND

Код:
(****************************************
*  *© Пархоменко Евгений Владимирович   *
*     сайт: http://decoding.narod.ru    *
*     e-mail: decoding@narod.ru         *
*                   28.07.2003г.        *
*                                       *
*    Информация о посторонних окнах     *
****************************************)

unit WndInfoFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Panel1: TPanel;
    Label1: TLabel;
    LabelLeft: TLabel;
    LabelTop: TLabel;
    Label2: TLabel;
    LabelWidth: TLabel;
    LabelHeight: TLabel;
    LabelName: TLabel;
    LabelClass: TLabel;
    LabelHandle: TLabel;
    Label3: TLabel;
    LabelParentHandle: TLabel;
    LabelParentName: TLabel;
    LabelParentClass: TLabel;
    Label4: TLabel;
    LabelParentLeft: TLabel;
    LabelParentTop: TLabel;
    Label5: TLabel;
    LabelParentWidth: TLabel;
    LabelParentHeight: TLabel;
    LabelPosX: TLabel;
    LabelPosY: TLabel;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
  Wnd: HWND;                   // Hahdle найденного окна
  Pos: TPoint;                 // Позиция курсора
  Rect: TRect;                 // Координаты окна
  buff: array[0..255] of char; // Буфер
  WndText: string;             // Текст окна
  NameClass: string;           // Класс окна
begin
   // Получаем позицию курсора
   GetCursorPos( Pos );
   // Получаем Handle окна под курсором
   Wnd := WindowFromPoint( Pos );
   GetWindowRect( Wnd, Rect );
   GetWindowText( Wnd, buff, SizeOf( buff ) );
   WndText := StrPas( buff );
   GetClassName( Wnd, buff, SizeOf( buff ) );
   NameClass := StrPas( buff );

   // Выводим координаты курсора
   LabelPosX.Caption := 'X: ' + IntToStr( Pos.X );
   LabelPosY.Caption := 'Y: ' + IntToStr( Pos.Y );

   LabelHandle.Caption := 'Handle: ' + IntToStr( Wnd );
   LabelName.Caption := 'Name: ' + WndText;
   LabelClass.Caption := 'Class: ' + NameClass;
   LabelLeft.Caption := 'Left = ' + IntToStr( Rect.Left );
   LabelTop.Caption := 'Top = ' + IntToStr( Rect.Top );
   LabelWidth.Caption := 'Width = ' + IntToStr( Rect.Right - Rect.Left );
   LabelHeight.Caption := 'Height = ' + IntToStr( Rect.Bottom - Rect.Top );

   // Получаем Handle родительского окна 
   Wnd := GetParent( Wnd );
   GetWindowRect( Wnd, Rect );
   GetWindowText( Wnd, buff, SizeOf( buff ) );
   WndText := StrPas( buff );
   GetClassName( Wnd, buff, SizeOf( buff ) );
   NameClass := StrPas( buff );

   LabelParentHandle.Caption := 'ParentHandle: ' + IntToStr( Wnd );
   LabelParentName.Caption := 'ParentName: ' + WndText;
   LabelParentClass.Caption := 'ParentClass: ' + NameClass;
   LabelParentLeft.Caption := 'ParentLeft = ' + IntToStr( Rect.Left );
   LabelParentTop.Caption := 'ParentTop = ' + IntToStr( Rect.Top );
   LabelParentWidth.Caption := 'ParentWidth = ' + IntToStr( Rect.Right - Rect.Left );
   LabelParentHeight.Caption := 'ParentHeight = ' + IntToStr( Rect.Bottom - Rect.Top );
end;

end.
С помощью этого кода узнаю hwnd пытаюсь кликнуть ничего не выходит
открываю spy++ и вижу что хендл моего окна совсем другой как это понять?
ClMlD вне форума Ответить с цитированием
Старый 29.12.2012, 07:51   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Используйте FindWindow
FaTaL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скриншот по HWND ClMlD Общие вопросы Delphi 1 29.12.2012 10:16
hWnd по имени процесса Berlioz Win Api 13 15.08.2012 10:05
HWnd и TWebBrowser stlcrash Win Api 13 14.12.2010 05:03
Отличия HWND и THandle Alex Cones Общие вопросы Delphi 5 06.09.2010 15:13
Узнать HWND окна Ilshat89 Общие вопросы C/C++ 3 01.09.2009 22:30