zoukankan      html  css  js  c++  java
  • 捕捉消息框中的文字

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

    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();
                }

            }

        }

    }
     
  • 相关阅读:
    查看IIS进程W3WP.exe对应网站进程池的PID
    【C#】结对项目开发-电梯调度仿真系统(Bata版)(党云龙、黄为)
    对于敏捷开发的理解!~~~~~~~~(黄为)
    【C】二维数组求最大子数组(基于一维数组的拓展)
    【C#】结对项目开发-电梯调度仿真系统(内部开发者版)(党云龙、黄为)
    【C】课堂结对联系-求整数数组的子数组之和的最大值(党云龙、黄为)
    【C#】结对项目开发-电梯调度需求分析(党云龙、黄为)
    C语言中求整型数组中的最大值!~~~~(黄为,刘佳琪)
    读入文本,找出出现频率最高的10个单词~~~~
    Emmet HTML/CSS代码快速编写神器
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6204990.html
Copyright © 2011-2022 走看看