char* szfilename = "c://enochshen.exe";
dword dwsize = getfileversioninfosize(szfilename,null);
lpvoid pblock = malloc(dwsize);
getfileversioninfo(szfilename,0,dwsize,pblock);
char* pvervalue = null;
uint nsize = 0;
verqueryvalue(pblock,text("//varfileinfo//translation"),
(lpvoid*)&pvervalue,&nsize);
cstring strsubblock,strtranslation,strtemp;
strtemp.format("000%x",*((unsigned short int *)pvervalue));
strtranslation = strtemp.right(4);
strtemp.format("000%x",*((unsigned short int *)&pvervalue[2]));
strtranslation += strtemp.right(4);
//080404b0為中文,040904e4為英文
//檔案描述
strsubblock.format("//stringfileinfo//%s//filedescription",strtranslation);
verqueryvalue(pblock,strsubblock.getbuffersetlength(256),(lpvoid*)&pvervalue,&nsize);
strsubblock.releasebuffer();
strtemp.format("檔案描述: %s",pvervalue);
afxmessagebox(strtemp);
//內部名稱
strsubblock.format("//stringfileinfo//%s//internalname",strtranslation);
verqueryvalue(pblock,strsubblock.getbuffersetlength(256),(lpvoid*)&pvervalue,&nsize);
strsubblock.releasebuffer();
strtemp.format("檔案描述: %s",pvervalue);
afxmessagebox(strtemp);
//合法版權
strsubblock.format("//stringfileinfo//%s//legaltrademarks",strtranslation);
verqueryvalue(pblock,strsubblock.getbuffersetlength(256),(lpvoid*)&pvervalue,&nsize);
strsubblock.releasebuffer();
strtemp.format("合法版權: %s",pvervalue);
afxmessagebox(strtemp);
//源檔名
strsubblock.format("//stringfileinfo//%s//originalfilename",strtranslation);
verqueryvalue(pblock,strsubblock.getbuffersetlength(256),(lpvoid*)&pvervalue,&nsize);
strsubblock.releasebuffer();
strtemp.format("源檔名: %s",pvervalue);
afxmessagebox(strtemp);
//產品名稱
strsubblock.format("//stringfileinfo//%s//productname",strtranslation);
verqueryvalue(pblock,strsubblock.getbuffersetlength(256),(lpvoid*)&pvervalue,&nsize);
strsubblock.releasebuffer();
strtemp.format("產品名稱: %s",pvervalue);
afxmessagebox(strtemp);
//產品版本
strsubblock.format("//stringfileinfo//%s//productversion",strtranslation);
verqueryvalue(pblock,strsubblock.getbuffersetlength(256),(lpvoid*)&pvervalue,&nsize);
strsubblock.releasebuffer();
strtemp.format("產品版本: %s",pvervalue);
afxmessagebox(strtemp);
free(pblock);
得到電腦的資訊
這裡有幾個函式,用來得到機器的資訊 1 得到登錄檔鍵值 這裡判斷norton的病毒庫版本 void cinfoshowdlg getnortonversion dword datalen,type byte data 80 result regqueryvalueex hkey,patternfil...
得到占用指定dll的程序
接之前的一篇文章 在製作軟體的安裝解除安裝時,有時一些動態庫被某些程序占用,不可以直接刪除,需要先將占用這個動態庫的程序結束。怎麼才能知道動態庫被哪個程序占用呢?開始的思路是這樣的,在dos裡面有這樣乙個命令 tasklist m dll 這個命令會列出所有占用了 dll的程序。ok,原理簡單。只要...
C 遍歷得到指定資料夾下的所有檔案和子資料夾
1.遍歷指定資料夾下的所有檔案 directoryinfo root new directoryinfo path foreach fileinfo f in root.getfiles 遍歷資料夾下的每個檔案 2.遍歷指定資料夾下的所有檔案以及子資料夾也遍歷,引數傳入父資料夾即可 private ...