encircle - 数字生活分享社区!

 找回密码
 立即注册
查看: 1935|回复: 0

[软件] 一个解决游戏突然弹回桌面/失去焦点/闪屏的小工具

[复制链接]

313

主题

300

回帖

6505

积分

太阳

Rank: 32Rank: 32Rank: 32Rank: 32Rank: 32Rank: 32Rank: 32Rank: 32

精华
1
门户文章
0
光照指数
1382
注册时间
2015-2-6
发表于 2018-4-28 23:19:36 | 显示全部楼层 |阅读模式
以前深受此问题困扰却愣是不知道是哪个程序在干扰时写的小工具,当时查明是阿里旺旺的自动更新造成,怒删之解决。
最近发现有些别的程序(我就不说是QQ)也偶尔会这样了而且越来越多的人开始问我这个怎么解决,只好掏出这个小工具。

这个小工具运行后会默默的在他自己的小命令行窗口里把前台程序显示出来,每切换一个窗口会显示一行新的。先把它开着放一边玩我们的,等到突然发生失去焦点现象的时候,切回小工具查案发xianc(神了,敲到这时闪了下)现场去,找到那个刚刚抢走你焦点的玩意(截图里的是google更新程序……),该杀就杀,不能杀就躲。
334_534972f4f2b63.jpg

程序下载:
http://www.bo3d.net/down/whoareyou.exe (若访问不能可用迅雷试试)
源码下载:http://www.bo3d.net/down/whoareyou.rar
源码这里也留一份,怕exe的话自行编译



































Code c:
#include<Windows.h>
#include<wchar.h>
#include<Psapi.h>

#pragma comment(lib,"Psapi.lib")

int main()
{
  HWND last_fore = NULL;
  wchar_t name[MAX_PATH];
  DWORD size = MAX_PATH;

  while(true)
  {
    
HWND fore = GetForegroundWindow();
    if (fore != last_fore)
    {
      last_fore = fore;

      
DWORD processid;
      GetWindowThreadProcessId(fore,&processid);

      
HANDLE process =OpenProcess(PROCESS_QUERY_INFORMATION, NULL, processid);
      

      GetProcessImageFileNameW(process, name,size);

      wprintf(L
"%s\n", name);
    }
    Sleep(10);
  }
  
return 0;



2015-07-02 23:07(更彻底的解决方案见[http://bbs.ngacn.cc/read.php?tid=8238883],除了某些编程不规范软件和360/电脑管家类软件外基本可以解决)



http://bbs.ngacn.cc/read.php?tid=6997752
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|encircle ( 苏ICP备15007951 )|苏公网安备32030202000891号

GMT+8, 2025-6-7 19:42 , Processed in 0.027913 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表