捕捉消息框中的文字

来源:互联网 发布:mapreduce python 编辑:程序博客网 时间:2024/06/05 09:28

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

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

        }

    }

}
 
原创粉丝点击