Форум: "WinAPI";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
Внизкак по 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c