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

Версия exe файла   Найти похожие ветки 

 
Broot   (2004-01-14 09:48) [0]

Знатоки, как узнать версию исполняемого файла? Функция GetFileVersionInfo работает с именем файла, а мне доступен лишь дескриптор HWnd главного окна.


 
[lamer]Barmaglot ©   (2004-01-14 10:09) [1]

ToolHelp?


 
hfa ©   (2004-01-14 10:13) [2]

моежт это поможет.. Unit ShellAPI

GetModuleFileName()


 
BiN ©   (2004-01-14 10:22) [3]

2 hfa
скорее GetModuleFileNameEx()


 
AKul ©   (2004-01-14 10:24) [4]

Если требуется узнать имя запущенной программы, включая полный путь, можно воспользоваться ParamStr(0).


 
Broot   (2004-01-14 10:27) [5]

а не используя имени файла?


 
BiN ©   (2004-01-14 10:52) [6]

Broot (14.01.04 10:27) [5]
а не используя имени файла?


ты хочешь узнать версию файла, не используя его имя? Это же смешно

Другое дело, если ты хочешь узнать имя файла, зная лишь хэндл одного из его окон.
читай мсдн:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/wind owreference/windowfunctions/getwindowthreadprocessid.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/openprocess.asp

http://msdn.microsoft.com/library/en-us/perfmon/base/getmodulefilenameex.asp


 
Broot   (2004-01-14 10:58) [7]

2 BiN
и почему это смешно? Версия файла хранится в ресурсах и следовательно она доступна напрямую. Другое дело как найти нужный ресурс и расшифровать его.


 
BiN ©   (2004-01-14 11:07) [8]

Как ты думаешь что будет эффективнее: одна-две импортированные системные функции или код по выгрузке ресурса и его обработке.
А версия в файле хранится под именем VERSIONINFO в юникоде. Но если тебе вдруг понадобятся исходники "непрямого" метода, обращайся


 
PVOzerski ©   (2004-01-14 11:08) [9]

2[7]:
А вы думаете, что если программа исполняется, то все ресурсы загружены в оперативную память, находятся в адресном пространстве процесса и могут быть добыты по соответствующему смещению? Увы (а вернее, к счастью, с точки зрения работы с памятью в Windows), это не так.


 
Broot   (2004-01-14 11:33) [10]

2 BiN
Думаю мой код будет эффективнее, потому как он делает тоже самое, но не все, а значительно меньше

2 PVOzerski
и слава богу, что не загружены, а при чем тут это?


 
PVOzerski ©   (2004-01-14 11:35) [11]

>и слава богу, что не загружены, а при чем тут это?
А при том, что придется всё равно в файле копаться. А открывать его как-то по имени принято.


 
Broot   (2004-01-14 11:42) [12]

2 PVOzerski
а как на счет функций FindResource и LoadResource?


 
BiN ©   (2004-01-14 11:54) [13]

Broot (14.01.04 11:33) [10]
а ты сначала напиши этот код, а потом поговорим


 
PVOzerski ©   (2004-01-14 11:58) [14]

>а как на счет функций FindResource и LoadResource?
Ну, изнутри интересующей тебя программы это пройдет. А как добыть хэндл модуля другой программы? А судя по всему, именно другую программу и надо определить.



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

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



Память: 0.48 MB
Время: 0.01 c
1-72776
alexnmsk
2004-01-12 16:07
2004.01.23
Динамические массивы


1-72705
Михаил
2004-01-12 08:29
2004.01.23
Как считать значение ячейки из уже открытого excel файла?


1-72811
senya
2004-01-12 18:58
2004.01.23
Масштаб для TImage


3-72666
Лена
2003-12-24 14:13
2004.01.23
Не удаляются данные из базы при помощи sql запроса


1-72813
nv_
2004-01-12 13:16
2004.01.23
формы и DLL




   Наверх