钩子的应用:程序运行监视
作者 佚名技术
来源 程序设计
浏览
发布时间 2012-06-30
.Second); if(!GetWindowText(hWnd, szWinCaption, 256)) *szWinCaption = 0; if(!GetClassName(hWnd,szWinClass,256)) *szWinClass = 0; s += "\"" + AnsiString(szWinClass) + "\" -> \"" + AnsiString(szWinCaption) + "\""; if(!ValidAppCheck(hWnd, szWinClass,szWinCaption)) s += " (关闭禁用程序)"; s += "\r\n"; TBinFileFuncs::WriteLogFileInfo(TRelPath().Extension("sys").c_str(), s.c_str()); //与 .exe 同名的 .sys 文件 } //--------------------------------------------------------------------------- void __fastcall TFormMain::WriteStartupMessage(void) { AnsiString s; DateTimeX x = StartupTime; TSysInfo si; s += "========== Copyright (C) Victor Chen ===== Email: victor@cppfans.com ==========\r\n"; s += AnsiString().sprintf("%04d-%02d-%02d %02d:%02d:%02d - ", x.Year, x.Month, x.Day, x.Hour, x.Minute, x.Second); s += AnsiString().sprintf("[System Startup - %s %d.%02d.%04d]", si.OS->OSName, si.OS->MajorVer, si.OS->MinorVer, si.OS->BuildNum); s += "\r\n"; TBinFileFuncs::WriteLogFileInfo(TRelPath().Extension("sys").c_str(), s.c_str()); //与 .exe 同名的 .sys 文件 } //--------------------------------------------------------------------------- void __fastcall TFormMain::WriteShutdownMessage(void) { AnsiString s; DateTimeX x; TimeX t; t.S000 = (x - StartupTime) % (24*60*60); int d = (x - StartupTime) / (24*60*60); s += AnsiString().sprintf("%04d-%02d-%02d %02d:%02d:%02d - ", x.Year, x.Month, x.Day, x.Hour, x.Minute, x.Second); s += AnsiString().sprintf("[System Shutdown - %d days, %d hrs, %d mins, %d secs]", d, t.Hour, t.Minute, t.Second); s += "\r\n"; TBinFileFuncs::WriteLogFileInfo(TRelPath().Extension("sys").c_str(), s.c_str()); //与 .exe 同名的 .sys 文件 } //--------------------------------------------------------------------------- bool __fastcall TFormMain::ValidAppCheck(HWND hwnd, char *cls, char *cap) { TBinFile f; f.FileName = TRelPath().Extension("cfg"); //与 .exe 同名的 .cfg 文件 f.OpenMode = TBinFile::omRead; //准备读文件 if(f.Exists) //如果文件存在 { try { f.Active = true; //打开文件 char aLine[2048]; while(fgets(aLine,2000,f)) //读一行文本 (标准 C 函数) { if(strnicmp(aLine,"CLASS=",6)==0) //用类名识别 { TBinFileFuncs::DeleteSpaces(aLine+6,1,1); //去除空格 if(stricmp(aLine+6,cls)==0) { PostMessage(hwnd, WM_CLOSE, 0, 0); //关闭程序 return false; } } else if(strnicmp(aLine,"CAPTION=",8)==0) //用标题识别 { TBinFileFuncs::DeleteSpaces(aLine+8,1,1); //去除空格 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 用键盘全局钩子Hook监视多进程键盘操作下一篇: Windows的动态链接库原理及使用2
关于钩子的应用:程序运行监视的所有评论