导读
易语言5.6完美版,可静态编译,绿色无后门

学习易语言 讲究的是系统,如果你正在四处闲逛,你懂的永远是皮毛! 觅风论坛正在为每个困惑的对易语言 详细

[c++] C++用户自定义拦截指定弹窗源码

[复制链接]

微信扫一扫 分享朋友圈

神话宝宝 发表于 2023-12-17 15:58:40 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

马上注册,结交更多易友,享用更多功能,让你轻松玩转觅风论坛。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
C++用户自定义拦截指定弹窗源码,实现自定义广告拦截电脑拦截各种流氓弹窗源码

  1. #include <afxwin.h>
  2. #include <iostream>
  3. #include <fstream>
  4. #include <string>
  5. #include <thread>
  6. #define RULE_FILE "rules.data"
  7. using namespace std;

  8. HWND hWnd;
  9. string wndtitle;
  10. BOOL showflag = false;

  11. bool Init();
  12. void GetWnd(HWND& wnd, string& title);
  13. void WriteRules(string rule);
  14. bool IsHit(string title);
  15. void FindAd();
  16. void ShowHide();
  17. BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam);

  18. int main()
  19. {
  20.     SetWindowTextA(GetForegroundWindow(),"Panel AD Killer made by Panel www.52pojie.cn");

  21.     if (!Init())
  22.     {
  23.         return 0;
  24.     }

  25.     HANDLE hThread;
  26.     hThread = CreateThread(
  27.         NULL,                  
  28.         0,                     
  29.         (LPTHREAD_START_ROUTINE)FindAd,        
  30.         NULL,            
  31.         0,               
  32.         NULL);           

  33.     // 消息循环
  34.     MSG msg = { 0 };
  35.     while (GetMessage(&msg, NULL, 0, 0) != 0) {
  36.         if (msg.wParam == 1) {
  37.             GetWnd(hWnd, wndtitle);
  38.             WriteRules(wndtitle);
  39.         }if (msg.wParam == 2)
  40.         {
  41.             ShowHide();
  42.         }
  43.         if (msg.message == WM_CLOSE) {

  44.             ShowWindow(hWnd, SW_HIDE);
  45.         }
  46.     }
  47. }

  48. bool Init()
  49. {
  50.     BOOL flag;
  51.     if (RegisterHotKey(NULL, 1, MOD_CONTROL | MOD_ALT, 'E')) {
  52.         cout << "初始化成功1\n";
  53.         flag = true;
  54.     }
  55.     else {
  56.         cout << "初始化失败,热键可能被占用1\n";
  57.         flag = false;
  58.     }
  59.     if (RegisterHotKey(NULL, 2, MOD_CONTROL | MOD_ALT, 'T')) {
  60.         cout << "初始化成功2\n";
  61.         flag = true;
  62.     }
  63.     else {
  64.         cout << "初始化失败,热键可能被占用2\n";
  65.         flag = false;
  66.     }
  67.     return flag;
  68. }
  69. void GetWnd(HWND& wnd, string& title)
  70. {

  71.     POINT pNow = { 0,0 };
  72.     if (GetCursorPos(&pNow))
  73.     {
  74.         HWND hwndPointNow = NULL;
  75.         hwndPointNow = WindowFromPoint(pNow);  
  76.         wnd = hwndPointNow;
  77.         if (hwndPointNow)
  78.         {
  79.             char szWindowTitle[50];
  80.             ::GetWindowTextA(hwndPointNow, szWindowTitle, sizeof(szWindowTitle));
  81.             title = string(szWindowTitle);
  82.             //cout << hex << (int)hwndPointNow << endl;  
  83.             cout << szWindowTitle << endl;
  84.         }
  85.         else
  86.             cout << "Error!!" << endl;
  87.     }
  88. }
  89. void WriteRules(string rule)
  90. {
  91.     ofstream file(RULE_FILE,ios::binary|ios::app);
  92.     if (!file.is_open()) {
  93.         std::cerr << "配置文件无法打开" << std::endl;
  94.         return;
  95.     }
  96.     file << rule << std::endl;
  97.     file.close();
  98. }
  99. bool IsHit(string title)
  100. {
  101.     ifstream inputFile(RULE_FILE,ios::app);

  102.     if (!inputFile.is_open()) {
  103.         std::cerr << "无法打开文件" << std::endl;
  104.         return false; // 返回错误代码
  105.     }

  106.     std::string line;
  107.     while (std::getline(inputFile, line)) {
  108.         if (line == title)
  109.         {
  110.             inputFile.close();
  111.             return true;
  112.         }
  113.     }

  114.     return false;
  115. }
  116. void FindAd()
  117. {
  118.     do
  119.     {
  120.         EnumWindows(EnumWindowsProc, 0); Sleep(1000);
  121.     } while (true);
  122. }
  123. void ShowHide()
  124. {
  125.     showflag = !showflag;
  126.     if (showflag)
  127.     {
  128.         ShowWindow(GetForegroundWindow(), SW_HIDE);
  129.     }
  130.     else {
  131.         ShowWindow(GetForegroundWindow(), SW_SHOW);
  132.     }
  133. }
  134. BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) {
  135.     char windowTitle[256];

  136.     GetWindowTextA(hwnd, windowTitle, sizeof(windowTitle));

  137.     if (string(windowTitle) == "")
  138.     {
  139.         return true;
  140.     }

  141.     if (string(windowTitle).find("shadow") != string::npos)
  142.     {
  143.         PostMessage(hwnd, WM_CLOSE, 0, 0);
  144.     }

  145.     if (IsHit(string(windowTitle)))
  146.     {
  147.         PostMessage(hwnd, WM_CLOSE, 0, 0);
  148.     }

  149.     return TRUE; // 继续列举下一个窗口
  150. }
复制代码




回复

使用道具 举报

精彩评论55

行走的蜗牛 发表于 2023-12-18 00:40:17 | 显示全部楼层
来瞧瞧的,呵呵
回复 支持 反对

使用道具 举报

fghjgfkjhgk 发表于 2023-12-18 09:21:54 | 显示全部楼层
支持,赞
回复 支持 反对

使用道具 举报

Hacker 发表于 2023-12-18 18:03:31 | 显示全部楼层
这个好好支持一下
回复 支持 反对

使用道具 举报

501369613 发表于 2023-12-19 02:45:08 | 显示全部楼层
这个不错,谢谢共享
回复 支持 反对

使用道具 举报

shjia24 发表于 2023-12-19 11:26:44 | 显示全部楼层
非常不错,感谢分享!
回复 支持 反对

使用道具 举报

lllll557 发表于 2023-12-19 12:35:31 | 显示全部楼层
多上传一点源码
回复 支持 反对

使用道具 举报

找找找 发表于 2023-12-19 13:44:18 | 显示全部楼层
谢谢楼主的辛苦分享
回复 支持 反对

使用道具 举报

asd26297 发表于 2023-12-19 14:53:05 | 显示全部楼层
不错不错 支持下
回复 支持 反对

使用道具 举报

lllll557 发表于 2023-12-19 16:01:53 | 显示全部楼层
这个好好支持一下
回复 支持 反对

使用道具 举报

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

本版积分规则

关注我们:觅风论坛与你快乐分享

收藏本站

用心服务做个非盈利公益编程网站

www.eyyba.com

服务人:觅风论坛

Email:eyyba@foxmail.com

Powered by WWW.EYYBA.COM X3.4© 2001-2023 Inc.   版权所有   

觅风论坛  疆ICP备15020893号-1