Нет гарантии, что вы найдете информацию о версии программы в реестре. Я использую ключ реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\programname
, чтобы найти полный путь, но он все равно зависит от установки/установки программы, чтобы установить это значение. Если бы было достаточно приятно использовать это соглашение, вы можете использовать полный путь для вызова GetFileVersionInfo(...)
.
По-прежнему разработчик может заполнить полезную информацию о ресурсе, такую как версия, название компании, описание, авторское право и т. Д. Вы можете сказать, что некоторые программы имеют старые хранилища по умолчанию «Делать» в ресурсе. Другие, даже Microsoft, забудут включить название компании в ресурс для таких программ, как Dumprep. Другие Exe, созданные без Visual Studio, не утруждают себя включением любого сегмента ресурсов, к которому можно получить доступ: GetFileVersionInfo()
.
В конечном счете, я считаю, что эта функция является самой надежной. Также обратите внимание, перед вызовом GetFileVersionInfo()
убедитесь, что вы звоните GetFileVersionSize()
. Если это x64-версия Windows, в некоторых случаях вам может потребоваться позвонить Wow64DisableWow64FsRedirection(...)
& Wow64RevertWow64FsRedirection(...)
или использовать SysNative, если программа, которую вы ищете, находится в системной папке, которая перенаправляется.
Какое программное обеспечение вам подходит? – Oleg
@ Должно быть, немцы здесь ;-) –
@Uwe Keim: Спасибо Уве! Это фиксированная. – Oleg