• 捕捉消息框中的文字


    把桌面上弹出的消息框中的文字取出来

    using  System;
    using  System.Collections.Generic;
    using  System.ComponentModel;
    using  System.Data;
    using  System.Drawing;
    using  System.Text;
    using  System.Windows.Forms;
    using  System.Reflection;
    using  System.Xml;
    using  System.Runtime.InteropServices;
    namespace  WindowsApplication26
    {
        
    public   partial   class  Form1 : Form
        
    {

            
    public   class  HookMsg
            
    {

                
    Win32 API functions

                
    private   static  System.IntPtr m_hhook;

                
    public   delegate   int  HookProc( int  code, IntPtr wParam, IntPtr lParam);

                
    protected   static  HookProc m_filterFunc;

                
    static  HookMsg()
                
    {
                    
    if  (m_filterFunc  ==   null )
                        m_filterFunc 
    =   new  HookProc(CoreHookProc);
                }


                
    public   static   void  Install()
                
    {

                    m_hhook 
    =  SetWindowsHookEx(WH_CBT, m_filterFunc, IntPtr.Zero, AppDomain.GetCurrentThreadId());
                }


                
    public   static   void  Uninstall()
                
    {
                    UnhookWindowsHookEx(m_hhook);
                }


                
    // CallBack
                 protected   static   int  CoreHookProc( int  code, IntPtr wParam, IntPtr lParam)
                
    {

                    
    if  (code  ==   5 )
                    
    {

                        StringBuilder sb 
    =   new  StringBuilder();
                        sb.Capacity 
    =   255 ;
                        
    // Title
                        GetWindowText(wParam, sb,  255 );
                        
    string  strTitle  =   " jinjazz看到了: "   +  sb.ToString();

                        
    // Text
                        GetDlgItemText(wParam, IDC_Text, sb,  255 );
                        
    string  strText  =   " jinjazz看到了: "   +  sb.ToString();

                        
    // 获取按钮
                         int  style  =   0 ;
                        
    for  ( int  i  =   0 ; i  <=   5 ; i ++ )
                        
    {
                            
    if  (GetDlgItem(wParam, i)  !=  IntPtr.Zero)
                                style 
    +=  i;
                        }


                        SetDlgItemText(wParam, IDC_Text, strText);
                        SetWindowText(wParam, strTitle);
                        SetWindowText(GetDlgItem(wParam, (
    int )DialogResult.No),  " jinjazzOK " );
                        SetWindowText(GetDlgItem(wParam, (
    int )DialogResult.Cancel),  " jinjazzCancel " );
                        SetWindowText(GetDlgItem(wParam, (
    int )DialogResult.Abort),  " jinjazzAbort " );
                        SetWindowText(GetDlgItem(wParam, (
    int )DialogResult.Ignore),  " jinjazzIgnore " );
                        SetWindowText(GetDlgItem(wParam, (
    int )DialogResult.None),  " jinjazzNone " );
                        SetWindowText(GetDlgItem(wParam, (
    int )DialogResult.OK),  " jinjazzOK " );
                        SetWindowText(GetDlgItem(wParam, (
    int )DialogResult.Retry),  " jinjazzRetry " );
                        SetWindowText(GetDlgItem(wParam, (
    int )DialogResult.Yes),  " jinjazzYes " );
                    }


                    
    //     return CallNextHookEx(this.m_hhook, code, wParam, lParam);
                     return   0 ;
                }

            }


            
    public  Form1()
            
    {
                InitializeComponent();
            }


            
    private   void  Form1_Load( object  sender, EventArgs e)
            
    {
                
            }


            
    private   void  button1_Click( object  sender, EventArgs e)
            
    {
                MessageBox.Show(
    this , " 确定按钮                                     " , " 标题 " );
            }


            
    private   void  button2_Click( object  sender, EventArgs e)
            
    {
                MessageBox.Show(
    this " 确定按钮                                     " " 标题 " , MessageBoxButtons.YesNoCancel);
            }


            
    private   void  button3_Click( object  sender, EventArgs e)
            
    {
                MessageBox.Show(
    this " 确定按钮                                     " " 标题 " , MessageBoxButtons.AbortRetryIgnore);
            }


            
    private   void  checkBox1_CheckedChanged( object  sender, EventArgs e)
            
    {
                
    if  ( this .checkBox1.Checked)
                
    {
                    HookMsg.Install();
                }

                
    else
                
    {
                    HookMsg.Uninstall();
                }

            }

        }

    }
     
  • 相关阅读:
    20180929 北京大学 人工智能实践:Tensorflow笔记02
    20180929 北京大学 人工智能实践:Tensorflow笔记01
    YOLOv3学习笔记
    编辑器上传漏洞
    IIS解析漏洞利用
    数据库备份及审查元素进行webshell上传
    burp suite 进行webshell上传
    BUGKU CFT初学之WEB
    CTFbugku--菜鸟初学
    理解PHP中的会话控制
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6204990.html
Copyright © 2020-2023  润新知