Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не работает GetWindowModuleFileName


kami ©   (2005-12-09 19:46:00) 

Код из процедуры хука WH_KEYBOARD:
var
 pFileName:PChar;
//==========================================
GetMem(pFileName,MAX_PATH+1);
FileNameSize:=GetWindowModuleFileName(GetForegroundWindow,pFileName,MAX_PATH);
if FileNameSize<>0 then
 // вывод pFileName

FreeMem(pFileName);

Этот код все время возвращает имя моего исполняемого файла (Project1.exe), даже если активна другая программа. Это несмотря на то, что HWND активного окна возвращается правильно (смотрю в WinSpector Spy).
Прочитал страницу этой функции в MSDN раз 20, наверное...не увидел, чтобы GetWindowModuleFileName можно было использовать только для своей программы. Почему же определяется неправильно?

ЗЫ. "Обходное" решение, конечно, нашел - через открытие процесса активного окна и GetModuleBaseName, но очень интересно, что я не так сделал. Про необходимость получения каких-либо дополнительных прав вроде, не сказано :(


kami   (2005-12-10 17:32:00) [1]

begin...end ©   (10.12.05 16:51) [2]
Ух, ёк... как там все сложно :)
P.S. Спасибо за ссылку, мои подозрения подтвердились.


begin...end   (2005-12-10 16:51:00) [2]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1131958580&n=5


gdaujk   (2005-12-10 16:14:00) [3]

kami ©   (09.12.05 19:46)

Согласен, не работает.

PS: что, никто не знает что ли?


Наверх

Титульная страница Поиск, карта сайта Написать письмо