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();
}
}
}
}
查看全文
相关阅读:
HDU 1969 Pie(二分查找)
HDU 1896 Stones (优先队列)
HDU 1548 A strange lift(BFS)
HDU 1518 Square(DFS)
CDOJ1085 基爷与加法等式 爆搜DFS
Codeforces Round #245 (Div. 2) C. Xor-tree DFS
Codeforces ZeptoLab Code Rush 2015 B. Om Nom and Dark Park DFS
Codeforces Round #297 (Div. 2)E. Anya and Cubes 折半搜索
Codeforces Round #401 (Div. 2)A B C
Codeforces Round #297 (Div. 2)D. Arthur and Walls 搜索bfs
原文地址:https://www.cnblogs.com/cl1024cl/p/6204990.html
最新文章
HDU 1950 Bridging signals 思维 最长上升子序列的nlogn
HDU 4734 F(x) DP, 数位DP
HDU 2089 不要62 数位DP
UVA 1625 Color Length DP
HDU 6092 Rikka with Subset 思维 递推
HDU 6090 Rikka with Graph 思维 公式
POJ 2528 Mayor's posters 线段树 离散化
POJ 3468 A Simple Problem with Integers 线段树 区间更新 区间查询
HDU 1698 Just a Hook 线段树 区间更新
PAT 团体程序设计天梯赛-练习集 L1-016. 查验身份证
热门文章
PAT 团体程序设计天梯赛-练习集 L1-015. 跟奥巴马一起画方块
PAT 团体程序设计天梯赛-练习集L1-011. A-B
PAT 团体程序设计天梯赛-练习集 L1-008. 求整数段和
PAT 团体程序设计天梯赛-练习集 L1-007. 念数字
PAT 团体程序设计天梯赛-练习集 L1-005. 考试座位号
PAT 团体程序设计天梯赛-练习集 L1-003. 个位数统计
PAT 团体程序设计天梯赛-练习集 L1-002. 打印沙漏
PAT 乙级 1004. 成绩排名
HDU 1728 逃离迷宫
HDU 2102 A计划
Copyright © 2011-2022 走看看