![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Доброго времени суток.
Как, зная хэндл (Handle: HWND) окна, определить ПОЛНОЕ имя приложения, которому оно принадлежит? Например, запущен Блокнот. Я знаю handle его окна типа HWND. Мне нужно получить "c:\WINDOWS\NOTEPAD.EXE". З.Ы. OS - Windows XP. Заранее спасибо! |
#2
|
||||
|
||||
![]() Код:
GetModuleName(GetClassLong(handle,GCL_HMODULE)) handle - это тебе известно Велик и могуч наш Object Pascal ! ICQ: 357-591-887 |
#3
|
|||
|
|||
![]() тогда уж GetModuleFileName(Handle, PS, SizeOf(PS)). Но дело в том, что у меня все время возвращается имя моей проги (как ParamStr(0)), а не той, которой нужно по хэндлу... Видно дело в самом Handle.
|
#4
|
|||
|
|||
![]() нет, хэндлы нормальные... ((
|
#5
|
||||
|
||||
![]() Нужно подставлять handle найденного тобой окна, а не главного окна твоей проги.
PS функцию GetModuleFileName использовать таким образом нельзя, т.к. туда в качестве первого параметра надо передавать HMODULE запущенного модуля, а не Handle окна Велик и могуч наш Object Pascal ! ICQ: 357-591-887 Последний раз редактировалось Rokuell, 05.03.2009 в 16:37. |
#6
|
|||
|
|||
![]() Так вот в том то и дело, что я в цикле подставляю хэндлы всех открытых окон, а каждый раз выдаются filename моей проги
|