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
#region
Win32 API functions
private
const
int
WH_CBT
=
0x5
;
private
const
int
IDC_OK
=
0x1
;
private
const
int
IDC_Text
=
0xFFFF
;
[DllImport(
"
user32.dll
"
)]
protected
static
extern
IntPtr SetWindowsHookEx(
int
code, HookProc func, IntPtr hInstance,
int
threadID);
[DllImport(
"
user32.dll
"
)]
protected
static
extern
int
UnhookWindowsHookEx(IntPtr hhook);
[DllImport(
"
user32.dll
"
)]
protected
static
extern
int
CallNextHookEx(IntPtr hhook,
int
code, IntPtr wParam, IntPtr lParam);
[DllImport(
"
user32.dll
"
)]
protected
static
extern
int
GetWindowText(IntPtr hwnd, [Out]StringBuilder lpString,
int
nMaxCount);
[DllImport(
"
user32.dll
"
)]
protected
static
extern
int
GetClassName(IntPtr hwnd, [Out]StringBuilder lpString,
int
nMaxCount);
[DllImport(
"
user32.dll
"
)]
protected
static
extern
int
SetWindowText(IntPtr hWnd,
string
lpString);
[DllImport(
"
user32.dll
"
)]
protected
static
extern
IntPtr GetDlgItem(IntPtr hwnd,
int
id);
[DllImport(
"
User32
"
)]
protected
static
extern
int
SetDlgItemText(IntPtr hDlg,
int
nIDDlgItem,
string
lpString);
[DllImport(
"
user32.dll
"
)]
protected
static
extern
int
GetDlgItemText(IntPtr hDlg,
int
nIDDlgItem, [Out] StringBuilder lpString,
int
nMaxCount);
[DllImport(
"
user32.dll
"
, EntryPoint
=
"
MessageBox
"
)]
protected
static
extern
int
_MessageBox(IntPtr hwnd,
string
text,
string
caption,
int
options);
[DllImport(
"
user32.dll
"
)]
protected
static
extern
IntPtr GetActiveWindow();
[DllImport(
"
user32.dll
"
)]
protected
static
extern
void
DestroyWindow(IntPtr hwnd);
#endregion
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();
}
}
}
}
查看全文
相关阅读:
MVC @Url.Action 小示例
Eclipse快捷键
MVC视频下载/文件上传
MySQL数据库备份/导出
C#文件下载
C#正则表达式匹配字符串中的数字
常用的LINQ to SQL 用法
C# 实现抓取网页内容(一)
C# 繁体字和简体字之间的相互转换
我到底会什么??
原文地址:https://www.cnblogs.com/cl1024cl/p/6204990.html
最新文章
JS运行机制
JS数据结构及算法(二) 队列
JS数据结构及算法(一) 堆栈
关于web安全--CSRF和XSS
跨域通信的几种方式
MVC与三层架构的区别
MVC中从控制器中获取状态数据的方法
XAML文件的相关介绍
VS2010打不开创建的项目的解决方法
sqlserver中将行数据转为Xml文件格式
热门文章
C# 小知识的积累 DataBinding使用
c# 控件类的小知识
JS笔记
Email
去掉数组中重复的数字(+冒泡排序语法)
判断字符串中的数字(可以进行演变)
Linq(拓展方法+select())
测试域账户及密码是否正确
?: $ 用法
使用SqlDataReader获取只读数据
Copyright © 2011-2022 走看看