
Set ws = CreateObject("WScriptShell")
Set FSO = CreateObject("ScriptingFileSystemObject")
kugou = wsregRead("HKCU\Software\KuGou\AppPath")
For Each f In FSOGetFolder(kugou)Files
ext = LCase(Right(fName, 4))
If ext = "exe" Or ext = "dll" Then
s = s & fName & vbTab & FSOGetFileVersion(fPath) & vbCrLf
End If
Next
MsgBox s
文件信息结构描述:
struct VS_FIXEDFILEINFO {
DWORD dwSignature; //=0xFEEFO4BD
DWORD dwStrucVersion; //该结构的版本信息,分高低版本
DWORD dwFileVersionMS; //主文件版本
DWORD dwFileVersionLS; //次文件版本
DWORD dwProductVersionMS; //主产品版本
DWORD dwProductVersionLS; //次产品版本
DWORD dwFileFlagsMask; //文件标志掩码
DWORD dwFileFlags; //文件标志(是否包含调试版本,动态版本结构)
DWORD dwFileOS; //文件原定的 *** 作系统(VOS_DOS,VOS_NT,VOS__WINDOWS16)
DWORD dwFileType; //文件类型(VFT_UNKNOWN,VFT_APP,VFT_DLL)
DWORD dwFileSubtype; //当dwFileType为VFT_APP或VFT_DLL时该值为0,当为驱动信息VFT_APP或字体信息时该值包含其具体的信息
DWORD dwFileDateMS; //主时间戳
DWORD dwFileDateLS; //次时间戳
};
===============================================
struct st_Language
{
WORD wLanguageID;
WORD wCodePage;
};
CString str("D:\\test\\testexe");
DWORD dwSize = GetFileVersionInfoSize(str,NULL);
if(0 == dwSize) return;
LPBYTE pBlock = (BYTE)malloc(dwSize);
bool b = GetFileVersionInfo(str,0,dwSize,pBlock);
char pVerValue = NULL;
UINT nlen1 = 0;
VerQueryValue(pBlock,TEXT("file://VarFileInfo//Translation"),
(LPVOID)&pVerValue,&nlen1);
//获取语言
char pLanValue = NULL;
UINT nLen2 = 0;
VerQueryValue(pBlock,"VarFileInfo\\Translation",(LPVOID)&pLanValue,&nLen2);
//080404b0为中文
st_Language stlang = ((st_Language )pLanValue);
//获取版本属性
VerQueryValue(pBlock,TEXT("file://%22),(LPVOID)%26pVerValue,%26nlen1/);
VS_FIXEDFILEINFO pfixfileinfo = (VS_FIXEDFILEINFO )pVerValue;
//修改属性
pfixfileinfo->dwFileVersionLS = 1234;
pfixfileinfo->dwFileVersionMS = 4321;
pfixfileinfo->dwProductVersionLS = 101;
pfixfileinfo->dwProductVersionMS = 1010;
//修改资源
HANDLE handle = BeginUpdateResource(str,FALSE);
BOOL result = UpdateResource(handle
,RT_VERSION
,MAKEINTRESOURCE(1)
,stlangwLanguageID
,pBlock
,dwSize);
if (result == FALSE)
{
AfxMessageBox("Updata Resource False");
}
EndUpdateResource(handle,FALSE);
free(pBlock);
以上就是关于VBS获取文件名和版本号全部的内容,包括:VBS获取文件名和版本号、c++ 获取文件版本信息、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)