得到指定檔案的資訊

2021-04-01 15:20:54 字數 2492 閱讀 7817

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 ...