Советы по Delphi

         

с другим приложением без Hook


Работа с другим приложением без Hook и DLL на примере GetFocus Своим опытом делится SottNick:

На стандартной форме (Form1):

Form1.FormStyle=fsStayOnTop - форма поверх остальных окон

Объекты:
  1. ТАЙМЕР (Timer1) с периодом 1000 или меньше,
  2. 3 метки (Label1, Label2, Label3). назначение их см. в тексте процедуры
  3. У таймера событие OnTimer. а вот для нее обработчик:
    procedure TForm1.Timer1Timer(Sender: TObject);
var dwTargetOwner :DWORD;//указатель на подключаемый процесс dwThreadID :DWORD;//указатель на текущий процесс Result:longbool; begin
{В первой метке отображается Handle активного окна} Label1.Caption:=IntToStr(GetForegroundWindow);//указатель на подключаемое приложение
// Подключение потока другого окна dwTargetOwner := GetWindowThreadProcessId(GetForegroundWindow,nil);//указатель на подключаемый процесс dwThreadID := GetCurrentThreadId();//указатель на текущий процесс if (dwTargetOwner <>dwThreadID) then // если не один и тот же процесс Result := AttachThreadInput(dwThreadID, dwTargetOwner, TRUE);//подключение
{Во второй метке отображается Handle объекта 'в фокусе' в активном окне} Label2.Caption:=IntToStr(GetFocus);//фокус в другом приложении
if (Result) then AttachThreadInput(dwThreadID, dwTargetOwner, FALSE);//отключение
{В третей метке отображается Handle объекта 'в фокусе' в активном окне, но если это окно другого приложения, то Handle будет равен нулю, т.к. попытка получения Handle происходит после отключения потока} Label3.Caption:=inttostr(GetFocus);//проверка после отключения
{Эффект можно посмотреть, если запустить полученное приложение и сделать активным другое приложение} {Ясно, что полученный Handle объекта можно использовать по своему разумению. Например, считать из объекта текст и т.п.}
// (C) SottNick 2000 end;
[001801]


Содержание  Назад  Вперед







Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий