我已經使用了幾年的NSIS腳本抓取了EXE的版本,因此我可以在安裝程序的歡迎文本中顯示它。NSIS獲取EXE的文件版本,即UPX壓縮
我拿到劇本的位置:http://nsis.sourceforge.net/Invoking_NSIS_run-time_commands_on_compile-time
!define File "C:\MyFile.exe"
OutFile "GetVersion.exe"
SilentInstall silent
Section
## Get file version
GetDllVersion "${File}" $R0 $R1
IntOp $R2 $R0/0x00010000
IntOp $R3 $R0 & 0x0000FFFF
IntOp $R4 $R1/0x00010000
IntOp $R5 $R1 & 0x0000FFFF
StrCpy $R1 "$R2.$R3.$R4.$R5"
## Write it to a !define for use in main script
FileOpen $R0 "$EXEDIR\Version.txt" w
FileWrite $R0 '!define Version "$R1"'
FileClose $R0
SectionEnd
最近,我開始使用UPX壓縮的應用程序的EXE。
現在,它是UPX壓縮,文件版本腳本不再起作用,我猜是由於非標準頁眉佈局。
如何從UPX壓縮EXE讀取文件版本?
更新:現在已關閉,但後來我發現這可能會導致某種提升的權限問題,並在映射驅動器上運行該命令。
你是如何調用UPX的?版本信息在Explorer和其他應用程序中是否仍然可見? – Anders