判断文件是否为可执行程序
生活随笔
收集整理的這篇文章主要介紹了
判断文件是否为可执行程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
bool CFileTransfer::IsExeFile(CString filepath)
{// *.exe,*.com,*.sys,*.cab,*.dox,*.dll,*.bat,*.dat, 多媒體格式(*.avi,*.wmv,*.rm,*.mp3,*.mp4...)int l = false;int b = false;HMODULE hMod = ::GetModuleHandle(filepath);if (hMod == NULL){hMod = ::LoadLibrary(filepath); l = true;}if (hMod == NULL) return false;PIMAGE_NT_HEADERS pe = NULL;try{if(::PIMAGE_DOS_HEADER(hMod)->e_magic == IMAGE_DOS_SIGNATURE){pe = ::PIMAGE_NT_HEADERS(PBYTE(hMod) + ::PIMAGE_DOS_HEADER(hMod)->e_lfanew);if(pe->Signature == IMAGE_NT_SIGNATURE) {b = true;}}//IMAGE_VXD_SIGNATURE,即Win3.X中的Virtual Device Driver//IMAGE_OS2_SIGNATURE,即IBM開發后又放棄的OS/2系統的程序}catch(...) {}if (l && hMod) ::FreeLibrary(hMod);return b;
}
?
總結
以上是生活随笔為你收集整理的判断文件是否为可执行程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CFileDialog 打开多个目录下的
- 下一篇: vs 正则表达式替换