一次抓“小偷”的经过(找出偷走当前活动窗口的小偷)
📅 2026/7/24 20:52:53
👁️ 次浏览
最近在使用Windows的过程中经常发现当前活动窗口被莫名其妙切换走需要按AltTab键或用鼠标左键单击恢复很烦人。于是写了一个每隔0.5秒获取当前窗口对应的进程PID窗口标题和对应进程全路径名有变化时记录到日志文件中的小程序FocusMonitor源代码如下#pragma warning(disable:4996) #pragma comment(lib,user32) #pragma comment(lib,psapi) #include io.h #include stdio.h #include string.h #include windows.h #include psapi.h //Log{ #define MAXLOGSIZE 20000000 #define MAXLINSIZE 16000 #include time.h #include sys/timeb.h #include stdarg.h char logfilename1[]FocusMonitor1.log; char logfilename2[]FocusMonitor2.log; static char logstr[MAXLINSIZE1]; char datestr[16]; char timestr[16]; char mss[4]; CRITICAL_SECTION cs_log; FILE *flog; char pathfilename[_MAX_FNAME]; char path[_MAX_FNAME]; char filename[_MAX_FNAME]; char tt[2]; void Lock(CRITICAL_SECTION *l) { EnterCriticalSection(l); } void Unlock(CRITICAL_SECTION *l) { LeaveCriticalSection(l); } void LogV(const char *pszFmt,va_list argp) { struct tm *now; struct timeb tb; if (NULLpszFmt||0pszFmt[0]) return; _vsnprintf(logstr,MAXLINSIZE,pszFmt,argp); ftime(tb); nowlocaltime(tb.time); sprintf(datestr,%04d-%02d-%02d,now-tm_year1900,now-tm_mon1,now-tm_mday); sprintf(timestr,%02d:%02d:%02d,now-tm_hour ,now-tm_min ,now-tm_sec ); sprintf(mss,%03d,tb.millitm); // printf(%s %s.%s %s,datestr,timestr,mss,logstr); flogfopen(logfilename1,a); if (NULL!flog) { fprintf(flog,%s %s.%s %s,datestr,timestr,mss,logstr); if (ftell(flog)MAXLOGSIZE) { fclose(flog); if (rename(logfilename1,logfilename2)) { remove(logfilename2); rename(logfilename1,logfilename2); } } else { fclose(flog); } } } void Log(const char *pszFmt,...) { va_list argp; Lock(cs_log); va_start(argp,pszFmt); LogV(pszFmt,argp); va_end(argp); Unlock(cs_log); } //Log} void GetPathByProcessId(DWORD dwPid, char *fullpath) { HANDLE hProcess OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwPid); if (hProcess NULL) return; fullpath[0]0; GetModuleFileNameEx(hProcess,NULL,fullpath,MAX_PATH); } INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, INT iCmdShow) { remove(noloop.txt); InitializeCriticalSection(cs_log); Log(FocusMonitor.exe Begin...\n); //防止该进程重入 HANDLE hMutex; hMutex CreateMutex(NULL, FALSE, FocusMonitor.exe ); if ( WaitForSingleObject(hMutex, 1000) WAIT_TIMEOUT ) { Log(FocusMonitor.exe already running\n); Log( ...End\n); DeleteCriticalSection(cs_log); return 1; } if ( GetLastError() ERROR_ALREADY_EXISTS ) { ReleaseMutex(hMutex); Log(FocusMonitor.exe already running\n); Log( ...End\n); DeleteCriticalSection(cs_log); return 2; } char str1[2*MAX_PATH]; char str2[2*MAX_PATH]; str2[0]0; while (1) { if (_access(noloop.txt,0) 0) break;// Sleep(500); HWND hWndGetForegroundWindow(); char title[10241]; if (0GetWindowText(hWnd, title, 1024)) title[0]0; DWORD pid; GetWindowThreadProcessId(hWnd,pid); char fullpath[MAX_PATH]; GetPathByProcessId(pid,fullpath); sprintf(str1,PID:%5ld, TITLE:%-100s, FULLPATH:%s\n,pid,title,fullpath); if (strcmp(str2,str1)){ strcpy(str2,str1); Log(str2); } } remove(noloop.txt); Log(Create a file noloop.txt or kill process FocusMonitor.exe to exit\n); Log(...End\n); DeleteCriticalSection(cs_log); return 0; }使用这个工具果然让我抓到了“小偷”2026-07-17 15:50:12.784 PID: 9527, TITLE:mphelper, FULLPATH:C:\Users\zhao4zhong1\AppData\Roaming\mphelper\2.0.21.1\mphelper.exe然后我就祭出我的“手铐”资源管理器中将文件夹C:\Users\zhao4zhong1\AppData\Roaming\mphelper的属性、安全、编辑、组或用户名、删除把这个“小偷”送进了“监狱”。
Windows Defender彻底移除指南:3种系统优化方案与完整实施流程 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mir…
📅 2026/7/24 20:52:53
StreamingLLM论文精读:为什么只保留开头几个Token,就能让模型持续生成数百万Token?
在普通大语言模型中,KV Cache会随着对话或文本长度不断增长。最直接的解决办法是只保留最近一段Token,也就是滑动窗口。
但论文发现…
📅 2026/7/24 20:52:53
肇庆、东莞、惠州公司变更地址法人流程对比与注意事项在珠三角经济圈,随着商业活动的日益频繁,企业主在处理工商注册、变更或注销事务时,常面临“自行办理”与“委托专业服务”的选择。不同企业在规模、税务状况及变更复杂度上存在显著差异&a…
📅 2026/7/24 20:52:53
WaveTools鸣潮工具箱终极指南:解锁高帧率画质与智能抽卡分析 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools
你是否曾在《鸣潮》的世界中感受到画面卡顿的困扰?是否羡慕高端显卡玩家…
📅 2026/7/24 22:20:50
文章目录冒烟测试(Smoke Testing)详解:为什么每次发布前都应该先做一次?什么是冒烟测试?为什么叫"冒烟(Smoke)"?冒烟测试的目标冒烟测试通常检查哪些内容?1. 服…
📅 2026/7/24 22:20:50
5分钟终极指南:使用Firefox脚本高效下载Sketchfab 3D模型用于学习研究 【免费下载链接】sketchfab sketchfab download userscipt for Tampermonkey by firefox only 项目地址: https://gitcode.com/gh_mirrors/sk/sketchfab
你是否经常在Sketchfab上发现令人…
📅 2026/7/24 22:20:50
SQLyog社区版:5分钟掌握完全免费的MySQL数据库管理终极指南 【免费下载链接】sqlyog-community Webyog provides monitoring and management tools for open source relational databases. We develop easy-to-use MySQL client tools for performance tuning and d…
📅 2026/7/24 22:20:50
走进 Gang of Four 设计模式:责任链模式 说明:不仅告诉你"怎么用",更告诉你"为什么这样设计" 前置知识:Java 面向对象基础(抽象类、多态、链表结构) 📊 设计模式分类总览
…
📅 2026/7/24 22:20:50
如何在浏览器中实现专业级3D模型可视化?Online3DViewer五大实用功能解析 【免费下载链接】Online3DViewer A solution to visualize and explore 3D models in your browser. 项目地址: https://gitcode.com/gh_mirrors/on/Online3DViewer
在数字化设计时代&…
📅 2026/7/24 22:19:49
大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…
📅 2026/7/24 0:00:05
srcampy /libsrcampy 名称释义先明确结论: 官方文档没有公布标准化英文全称,是地平线内部项目缩写;行业公认拆解如下:srcampy Source Amplifier Python bindingsrc Source(图像源:MIPI Sensor、视频源&am…
📅 2026/7/24 0:01:06
该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…
📅 2026/7/24 0:01:06
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/24 1:07:52
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/24 1:07:52
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/24 1:07:52
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/24 7:08:08
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/24 17:08:36
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/24 5:08:03