Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];

Вниз

Имя EXE-файла по Handle окна   Найти похожие ветки 

 
Arkady   (2003-01-22 13:58) [0]

Как получить имя EXE-файла программы по Handle окна?


 
troits   (2003-01-22 15:44) [1]

С помощью GetWindowThreadProcessId определяем ProcessID процесса, который создал окно.
Потом по ProcessID надо получить exe. Посмотри CreateToolhelp32Snapshot и т. д. Это здесь часто обсуждалось.


 
MBo   (2003-01-22 15:54) [2]

UINT GetWindowModuleFileName(HWND hwnd,LPTSTR lpszFileName,
UINT cchFileNameMax);


 
troits   (2003-01-22 16:17) [3]

Надо же, чего только на свете не бывает... :)

Нужно только помнить, что
Windows NT/2000/XP: Included in Windows NT 4.0 SP3 and later.
Windows 95/98/Me: Included in Windows 98 and later.

Хотя, конечно, эти ограничения не существенны :)



 
MBo   (2003-01-22 16:20) [4]

еще можно использовать GetModuleFileName, получив HInstance с помощью GetWindowLong


 
troits   (2003-01-22 16:56) [5]

>Mbo
Боюсь, что эти ф-ции(GetWindowModuleFileName и GetModuleFileName) можно вызывать только для окон (модулей) текущего процесса... Или я не прав ???


 
troits   (2003-01-22 17:07) [6]

Да, точно. Даже статья в MSDN есть:
Knowledge Base Articles

INFO: GetWindowModuleFileName & GetModuleFileName Work Only with the Calling Process

SUMMARY
GetWindowModuleFileName and GetModuleFileName correctly retrieve information about windows and modules in the calling process. In Windows 95 and 98, they return information about windows and modules in other processes. However, in Windows NT 4.0 and Windows 2000, since module handles are no longer shared by all processes as they were on Windows 95 and 98, these APIs do not return information about windows and modules in other processes.


 
MBo   (2003-01-22 17:14) [7]

>troits
в 98 работает и для других процессов. Сейчас проверил в XP - действительно не хочет ;(


 
MBo   (2003-01-22 17:25) [8]

Когда писал, troits © (22.01.03 17:07) еще не видел.
Теперь ясно.


 
Игорь Шевченко   (2003-01-23 10:17) [9]

В кладовке, в разделе "Готовые программы" лежит программа EnumFunctions, которая определяет имя EXEшника по Handle любого окна. Правда, только для WinNt, Win2K и WinXP



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

Форум: "WinAPI";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
14-39518
Gydrop
2003-02-25 23:07
2003.03.13
Значение ключа по умолчанию в реестре


14-39576
RV
2003-02-27 08:40
2003.03.13
кто быстрее раскусит :)


1-39276
Aleksandr
2003-03-03 10:21
2003.03.13
Объясните мне про потоки и защищенность их методов!


14-39524
trotski
2003-02-25 22:20
2003.03.13
Оформление документации


14-39570
Дмитрий К.К.
2003-02-27 06:37
2003.03.13
Именинники 27 февраля





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский