Вниз
Скачать: CL | DM;

как по handle определить, какому приложению принадлежит окно   Найти похожие ветки 

← →
Dema-X   (2004-11-29 16:51) [0]

Задай вопрос типа как по handle определить, какому приложению принадлежит окно и какой тип имеет окно(типа OLE Word.application)


← →
Dema-X   (2004-11-30 05:49) [1]

Люди!Что никто не знает?Функции типа GetClassName не дают исчерпывающей информации о приложении а дрыгих функций я не знаю а GETCLASSINFO у меня не раюотают почему то!!! :((


← →
Defunct ©   (2004-11-30 07:28) [2]

GetWindowModuleFileNameA


← →
TUser ©   (2004-11-30 09:50) [3]


> какому приложению принадлежит окно

GetWindowThreadProcessId. Функцию приведенную в другой ветке считать бредом с перепою и переколу.

> какой тип имеет окно(типа OLE Word.application)

Никакое окно не имеет такого типа. Класс окна можно узнать функцией GetClassName. Узнать, поддерживает ли даное приложение OLE - я думаю, нельзя. Разве, что в реестре покопаться, но без гарантии результата. Да и не нужно это.


← →
Dema-X   (2004-11-30 19:58) [4]


> GetWindowThreadProcessId. Функцию приведенную в другой ветке
> считать бредом с перепою и переколу.

Вы про это
> Defunct ©   (30.11.04 07:28) [2]

ну а как же
> GetActiveOleObject("Word.Application");
?


← →
Dema-X   (2004-11-30 20:09) [5]


> Defunct ©   (30.11.04 07:28) [2]
> GetWindowModuleFileNameA

Ничего не выдает функция,только 51 если над моим окно и 0 над всеми другими!


← →
Dema-X   (2004-12-04 12:58) [6]

.


← →
easy ©   (2004-12-04 17:29) [7]

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Timer1: TTimer;
   procedure Timer1Timer(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
function GetFullExeName(ProcID: DWord): string;
var
 ModEntr: TModuleEntry32;
 ContinueLoop: BOOL;
 FSnapshotHandle: THandle;
begin
 FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcID);
 ModEntr.dwSize := Sizeof(ModEntr);
 ContinueLoop := Module32First(FSnapshotHandle, ModEntr);
 Result := "";
 while (Integer(ContinueLoop) <> 0) and (Result = "") do
 begin
   if ProcID = ModEntr.th32ProcessID then begin
     Result := ModEntr.szExePath;
   end;
   ContinueLoop := Module32Next(FSnapshotHandle, ModEntr);
 end;
end;

function GetWModule(h: HWND): string;
var
 pProcID: ^DWORD;
begin
 GetMem(pProcID, SizeOf(DWORD));
 GetWindowThreadProcessId(h, pProcID);
 result := GetFullExeName(pProcID^);
 FreeMem(pProcID);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
 p:TPoint;
begin
 getcursorpos(p);
 caption:=GetWModule(windowfrompoint(p));
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Timer1.Interval:=200;
end;

end.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.027 c
14-1104908442
asdqwer
2005-01-05 10:00
2005.01.23
A.S.C., C.S.A. и проч.


1-1105002566
Федюлин Григорий
2005-01-06 12:09
2005.01.23
Работа с ReadDirectoryChangesW


14-1104441096
ArMellon
2004-12-31 00:11
2005.01.23
Если человек выпивает больше четырех раз в год - он хронический


3-1103354594
Dell3r
2004-12-18 10:23
2005.01.23
Неизвестная


10-1081321930
com.dll
2004-04-07 11:12
2005.01.23
Отладка com-сервера




   Наверх