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();
}
}
}
}
查看全文
相关阅读:
前端工程部署
xcode使用入门
effective java
java测试用例的编写
记录一次随意操作数据库,插入新数据,导致与程序添加新数据时,引起的主键值重复问题。More than one row with the given identifier was found: 1690
Spring.Net中的依赖注入(DI)
记一次使用js中的this关键字在ajax中使用,因传入的this对象不同而引起的问题。
代理模式
异常: 指定的转换无效
log4net.config配置启用的几种方式
原文地址:https://www.cnblogs.com/cl1024cl/p/6204990.html
最新文章
SprngBoot异常:This application has no explicit mapping for /error, so you are seeing this as a fallback.
SpringBoot配置文件加载位置
Profile
Shell——面试题
Shell——sort
Shell——awk
Shell工具——Sed
与圆有关的性质
社工?
关于游戏
热门文章
第一章重置
03_py
01_02_py
凸优化1.1-1.3
多线程和高并发
docker使用入门
nginx使用入门
vue入门
springboot打包成war,部署到tomcat,访问404
html的基本概念
Copyright © 2011-2022 走看看