zoukankan      html  css  js  c++  java
  • 被某弹窗弄烦了实现自动关闭弹窗

    RT,的确是有点儿烦人,写了个Daemon

    修改配置文件中"CalcFrame,计算器",格式:"ClassName,标题",可以那spyxx抓下:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
            <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
                <section name="PopKiller.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
            </sectionGroup>
        </configSections>
        <applicationSettings>
            <PopKiller.Settings>
                <setting name="ClassWindowName" serializeAs="Xml">
                    <value>
                        <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                            xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                            <string>CalcFrame,计算器</string>
                            <string>TXGuiFoundation,腾讯网新闻</string>
                        </ArrayOfString>
                    </value>
                </setting>
            </PopKiller.Settings>
        </applicationSettings>
    </configuration>

    代码简单得很,大家参考,[PopKiller.7z]

    using System;
    using System.Runtime.InteropServices;
    using System.Timers;
    
    namespace PopKiller
    {
        class Program
        {
            [DllImport("user32.dll", CharSet = CharSet.Auto)]
            static extern IntPtr FindWindow(string className, string windowName);
            [DllImport("user32.dll", CharSet = CharSet.Auto)]
            static extern IntPtr SendMessage(IntPtr hWnd, uint msg, int wParam, int lParam);
    
            const uint WM_CLOSE = 0x0010;
            static System.Timers.Timer timer1;
            static System.Collections.Specialized.StringCollection lstClassWindowName;
    
            static void Main(string[] args)
            {
                lstClassWindowName = Settings.Default.ClassWindowName;
                timer1 = new Timer();
                timer1.Elapsed += new ElapsedEventHandler(timer1_Elapsed);
                timer1.Start();
                GC.KeepAlive(timer1);
                while (true)
                {
                    System.Threading.Thread.Sleep(1000);
                }
            }
    
            static void timer1_Elapsed(object sender, ElapsedEventArgs e)
            {
                foreach (var item in lstClassWindowName)
                {
                    IntPtr hwnd = FindWindow(item.Split(',')[0], item.Split(',')[1]);
                    if (hwnd != IntPtr.Zero)
                    {
                        SendMessage(hwnd, WM_CLOSE, 0, 0);
                        //System.Diagnostics.Debug.WriteLine("Closed " + item);
                    }
                }
            }
        }
    }
  • 相关阅读:
    C#DataGridView的简单使用
    Python实现简单登陆验证(文件操作)
    【hive】centos7下apache-hive-3.1.2-bin的安装测试
    【mysql】centos7下mysql的安装以及基本操作
    【hadoop】细读MapReduce的工作原理
    【hadoop】看懂WordCount例子
    【hadoop】在eclipse上运行WordCount的操作过程
    纪念一下,时隔多年,继delphi上成功运行sql之后
    【Linux下Hadoop-eclipse-plus-3.2.0】编译Hadoop连接eclipse的插件遇见的一系列错误,崩溃的操作
    数据挖掘初次接触!学习代码
  • 原文地址:https://www.cnblogs.com/eshizhan/p/2652136.html
Copyright © 2011-2022 走看看