?? versionedit.asm
字號:
IDD_DLGVERSION equ 1700
IDC_EDTVERNAME equ 2901
IDC_EDTVERID equ 2902
IDC_EDTVERFILE equ 2903
IDC_EDTVERPROD equ 2904
IDC_CBOVEROS equ 2905
IDC_CBOVERTYPE equ 2906
IDC_CBOVERLANG equ 2907
IDC_CBOVERCHAR equ 2908
IDC_LSTVER equ 2909
IDC_EDTVER equ 2910
IDC_EDTVERTPE equ 2911
IDC_BTNVERADD equ 2912
.const
szVerOS dd 00000004h
db 'WINDOWS32',0
dd 00000000h
db 'UNKNOWN',0
dd 00010000h
db 'DOS',0
dd 00020000h
db 'OS216',0
dd 00030000h
db 'OS232',0
dd 00040000h
db 'NT',0
dd 00000000h
db 'BASE',0
dd 00000001h
db 'WINDOWS16',0
dd 00000002h
db 'PM16',0
dd 00000003h
db 'PM32',0
dd 00010001h
db 'DOS_WINDOWS16',0
dd 00010004h
db 'DOS_WINDOWS32',0
dd 00020002h
db 'OS216_PM16',0
dd 00030003h
db 'OS232_PM32',0
dd 00040004h
db 'NT_WINDOWS32',0
dd 0,0
szVerFT dd 00000000h
db 'UNKNOWN',0
dd 00000001h
db 'APP',0
dd 00000002h
db 'DLL',0
dd 00000003h
db 'DRV',0
dd 00000004h
db 'FONT',0
dd 00000005h
db 'VXD',0
dd 00000007h
db 'STATIC_LIB',0
dd 0,0
szVerLNG dd 0409h
db 'U.S. English',0
dd 0401h
db 'Arabic',0
dd 0402h
db 'Bulgarian',0
dd 0403h
db 'Catalan',0
dd 0404h
db 'Traditional Chinese',0
dd 0405h
db 'Czech',0
dd 0406h
db 'Danish',0
dd 0407h
db 'German',0
dd 0408h
db 'Greek',0
dd 040Ah
db 'Castilian Spanish',0
dd 040Bh
db 'Finnish',0
dd 040Ch
db 'French',0
dd 040Dh
db 'Hebrew',0
dd 040Eh
db 'Hungarian',0
dd 040Fh
db 'Icelandic',0
dd 0410h
db 'Italian',0
dd 0411h
db 'Japanese',0
dd 0412h
db 'Korean',0
dd 0413h
db 'Dutch',0
dd 0414h
db 'Norwegian - Bokml',0
dd 0415h
db 'Polish',0
dd 0416h
db 'Brazilian Portuguese',0
dd 0417h
db 'Rhaeto-Romanic',0
dd 0417h
db 'Rhaeto-Romanic',0
dd 0418h
db 'Romanian',0
dd 0419h
db 'Russian',0
dd 041Ah
db 'Croato-Serbian (Latin)',0
dd 041Bh
db 'Slovak',0
dd 041Ch
db 'Albanian',0
dd 041Dh
db 'Swedish',0
dd 041Eh
db 'Thai',0
dd 041Fh
db 'Turkish',0
dd 0420h
db 'Urdu',0
dd 0421h
db 'Bahasa',0
dd 0804h
db 'Simplified Chinese',0
dd 0807h
db 'Swiss German',0
dd 0809h
db 'U.K. English',0
dd 080Ah
db 'Mexican Spanish',0
dd 080Ch
db 'Belgian French',0
dd 0810h
db 'Swiss Italian',0
dd 0813h
db 'Belgian Dutch',0
dd 0814h
db 'Norwegian - Nynorsk',0
dd 0816h
db 'Portuguese',0
dd 081Ah
db 'Serbo-Croatian (Cyrillic)',0
dd 0C0Ch
db 'Canadian French',0
dd 100Ch
db 'Swiss French',0
dd 0,0
szVerCHS dd 1200
db 'Unicode',0
dd 0
db '7-bit ASCII',0
dd 932
db 'Japan (Shift - JIS X-0208)',0
dd 949
db 'Korea (Shift - KSC 5601)',0
dd 950
db 'Taiwan (GB5)',0
dd 1250
db 'Latin-2 (Eastern European)',0
dd 1251
db 'Cyrillic',0
dd 1252
db 'Multilingual',0
dd 1253
db 'Greek',0
dd 1254
db 'Turkish',0
dd 1255
db 'Hebrew',0
dd 1256
db 'Arabic',0
dd 0,0
szVerTpe db 'CompanyName',0
db 'FileVersion',0
db 'FileDescription',0
db 'InternalName',0
db 'LegalCopyright',0
db 'LegalTrademarks',0
db 'OriginalFilename',0
db 'ProductName',0
db 'ProductVersion',0
db 0
szStringFileInfo db 'StringFileInfo',0
szVarFileInfo db 'VarFileInfo',0
szTranslation db 'Translation',0
.data
defver VERSIONMEM <"IDR_VERSION",1,1,0,0,0,1,0,0,0,4,0,409h,4B0h>
VERSIONITEM <"FileVersion","1.0.0.0">
VERSIONITEM <"ProductVersion","1.0.0.0">
VERSIONITEM 30 dup(<>)
.data?
szVersionTxt db 32*256 dup(?)
.code
ExportVersionNames proc uses esi edi,hMem:DWORD
invoke GlobalAlloc,GMEM_FIXED or GMEM_ZEROINIT,1024*16
mov edi,eax
invoke GlobalLock,edi
push edi
mov esi,hMem
;#define
.if [esi].VERSIONMEM.szname && [esi].VERSIONMEM.value
invoke SaveStr,edi,addr szDEFINE
add edi,eax
mov al,' '
stosb
invoke SaveStr,edi,addr [esi].VERSIONMEM.szname
add edi,eax
mov al,' '
stosb
invoke ResEdBinToDec,[esi].VERSIONMEM.value,edi
invoke lstrlen,edi
lea edi,[edi+eax]
mov al,0Dh
stosb
mov al,0Ah
stosb
.endif
mov al,0
stosb
pop eax
ret
ExportVersionNames endp
ExportVersion proc uses esi edi,hMem:DWORD
invoke GlobalAlloc,GMEM_FIXED or GMEM_ZEROINIT,1024*16
mov edi,eax
invoke GlobalLock,edi
push edi
mov esi,hMem
;Name or ID
.if [esi].VERSIONMEM.szname
invoke lstrcpy,edi,addr [esi].VERSIONMEM.szname
.else
invoke ResEdBinToDec,[esi].VERSIONMEM.value,edi
.endif
invoke lstrlen,edi
add edi,eax
mov al,' '
stosb
invoke SaveStr,edi,addr szVERSIONINFO
add edi,eax
mov al,0Dh
stosb
mov al,0Ah
stosb
;File version
invoke SaveStr,edi,addr szFILEVERSION
add edi,eax
mov al,' '
stosb
push esi
lea esi,[esi].VERSIONMEM.fv
call SaveVer
pop esi
;Product version
invoke SaveStr,edi,addr szPRODUCTVERSION
add edi,eax
mov al,' '
stosb
push esi
lea esi,[esi].VERSIONMEM.pv
call SaveVer
pop esi
;File OS
invoke SaveStr,edi,addr szFILEOS
add edi,eax
mov al,' '
stosb
mov eax,[esi].VERSIONMEM.os
call SaveHex
;File type
invoke SaveStr,edi,addr szFILETYPE
add edi,eax
mov al,' '
stosb
mov eax,[esi].VERSIONMEM.ft
call SaveHex
invoke SaveStr,edi,addr szBEGIN
add edi,eax
mov al,0Dh
stosb
mov al,0Ah
stosb
mov al,' '
stosb
stosb
invoke SaveStr,edi,addr szBLOCK
add edi,eax
mov al,' '
stosb
mov al,22h
stosb
invoke SaveStr,edi,addr szStringFileInfo
add edi,eax
mov al,22h
stosb
mov al,0Dh
stosb
mov al,0Ah
stosb
mov al,' '
stosb
stosb
invoke SaveStr,edi,addr szBEGIN
add edi,eax
mov al,0Dh
stosb
mov al,0Ah
stosb
mov al,' '
stosb
stosb
stosb
stosb
invoke SaveStr,edi,addr szBLOCK
add edi,eax
mov al,' '
stosb
mov al,22h
stosb
mov eax,[esi].VERSIONMEM.lng
invoke hexEax
invoke lstrcpy,edi,offset strHex+4
add edi,4
mov eax,[esi].VERSIONMEM.chs
invoke hexEax
invoke lstrcpy,edi,offset strHex+4
add edi,4
mov al,22h
stosb
mov al,0Dh
stosb
mov al,0Ah
stosb
mov al,' '
stosb
stosb
stosb
stosb
invoke SaveStr,edi,addr szBEGIN
add edi,eax
mov al,0Dh
stosb
mov al,0Ah
stosb
push esi
lea esi,[esi+sizeof VERSIONMEM]
.while TRUE
.break .if ![esi].VERSIONITEM.szname
.if [esi].VERSIONITEM.szvalue
mov al,' '
stosb
stosb
stosb
stosb
stosb
stosb
invoke SaveStr,edi,addr szVALUE
add edi,eax
mov al,' '
stosb
mov al,22h
stosb
invoke SaveStr,edi,addr [esi].VERSIONITEM.szname
add edi,eax
mov al,22h
stosb
mov al,','
stosb
mov al,' '
stosb
mov al,22h
stosb
invoke SaveStr,edi,addr [esi].VERSIONITEM.szvalue
add edi,eax
mov al,'\'
stosb
mov al,'0'
stosb
mov al,22h
stosb
mov al,0Dh
stosb
mov al,0Ah
stosb
.endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -