VS2010旗舰版的VB.NET版本里的SendMessage键盘按键参数和代码

按键 代码
SHIFT +
CTRL ^
ALT %

a是tab切换焦点和切换控件,

b是enter换行或进入或确定,
c是 空格,
d是Esc是取消或停止或关闭,
e是CTRL+A即^A是全选,
f是CTRL+C即^C是复制,
g是CTRL+V即^V是粘贴,

h是Alt+tab即%{tab}是切换窗口,
Alt+++tab即%+{tab}是切换上一个窗口,

i是alt+空格+N是最小化窗口,
j是alt+空格+X是最大化窗口,
k是F1是显示帮助,
l是F2是重命名文件,
m是F3是查找或搜索,
n是F4是另存为或“地址”栏列表,
o是F5是刷新,
p是F6是在窗口或桌面上循环切换子菜单,
q是F7是DoS下专用功能,
r是F8是Windows 启动选项,
s是F9是Excel 中计算公式,
t是F10是激活菜单栏,
u是F11是切换全屏,
v是F12是Word 里另存文档,
w是BackSpace是删除左侧一个字符或返回上一页,
x是Home是移至行首,
y是End是移至行尾,
z是win是打开开始菜单,
A是DELETE是删除右侧一个字符,
B是CTRL+X即^X是剪切,
C是CTRL+D即^D是删除,
D是CTRL+N即^N是新建,
E是CTRL+O即^O是打开,
F是CTRL+空格是中英文输入切换
G是win+D是显示桌面,
H是win+E是打开资源管理器,
I是win+M是最小化所有窗口,
J是win+R是运行,

win+i是设置.

K是Shift+tab是在选项之间向后移动,
L是Ctrl + Tab是切换到下一选项卡,
M是CTRL+Shift即CTRL+Shift是输入法切换,
N是ALT+F4是关闭当前文件或者关闭计算机,
O是ALT+Enter是打开文件属性,
P是CTRL+Esc即^{Esc}是开始菜单,
Q是CTRL+ALT+DELETE是打开任务管理器,
R是SHIFT+DELETE是永久删除所选项,
S是CTRL+S即^S是保存文档,
T是SHIFT+F10是选中文件的右菜单或显示所选项的快捷菜单,
U是CTRL+F4即^{F4}是关闭当前窗口,
V是ALT+空格键是显示程序"控制"菜单,
W是Ctrl+W是关闭文档,
X是CTRL+Z即^Z是撤销,
Y是CTRL+Y即^Y是恢复,
Z是CTRL+F11即^{F11}是隐藏或显示菜单栏。

Imports System.IO
Imports System.Runtime.InteropServices

Public Class Form1
<DllImport(“user32.dll”, CharSet:=CharSet.Auto)>
Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
End Function

Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click


    Dim a

    SendKeys.Send("%{tab}")
            '等待一段时间,确保程序已经成功打开
    Threading.Thread.Sleep(1000)


    SendKeys.Send("{tab 2}")
            '等待一段时间,确保程序已经成功打开
    Threading.Thread.Sleep(200)



    Button4.PerformClick() '复制按钮



    '粘贴内容
    SendKeys.SendWait("^v") ' 粘贴文本
    Threading.Thread.Sleep(200)


    SendKeys.Send("{tab}")
            '等待一段时间,确保程序已经成功打开
    Threading.Thread.Sleep(200)



    SendKeys.Send("{Enter}")
            '等待一段时间,确保程序已经成功打开
    Threading.Thread.Sleep(200)


    SendKeys.Send("{Enter}")
            '等待一段时间,确保程序已经成功打开
    Threading.Thread.Sleep(200)


    For a = 0 To 34

        SendKeys.Send("{tab 2}")
                '等待一段时间,确保程序已经成功打开
        Threading.Thread.Sleep(200)


        Button4.PerformClick() '复制按钮




        SendKeys.Send("{Backspace 5}") ' 删除文本
        Threading.Thread.Sleep(200)


        '粘贴内容
        SendKeys.SendWait("^v") ' 粘贴文本
        Threading.Thread.Sleep(200)


        SendKeys.Send("{tab}")
                '等待一段时间,确保程序已经成功打开
        Threading.Thread.Sleep(200)



        SendKeys.Send("{Enter}")
                '等待一段时间,确保程序已经成功打开
        Threading.Thread.Sleep(200)


        SendKeys.Send("{Enter}")
                '等待一段时间,确保程序已经成功打开
        Threading.Thread.Sleep(200)

    Next
End Sub




    Dim hWnd As IntPtr = Shell("C:\Users\Administrator\Desktop\按键密码恢复程序源代码ZQ2023-11-16-11-21\登录程序.exe", AppWinStyle.NormalFocus)
            '等待一段时间,确保程序已经成功打开
    Threading.Thread.Sleep(1000)

Private Sub Form_Load()
TextBox1.text = “C:\Users\28261\Desktop\文本框密码登录程序.exe”
End Sub

Private Sub Command1_Click()

Button2.PerformClick()
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send(“{DOWN 15}”)
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

Private Sub Command1_Click

'打开目标程序
Shell “密码登录程序.exe”, vbNormalFocus
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

Dim S As String
S = TextBox1.Text
Shell S, vbNormalFocus
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{tab}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"03"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{tab 2}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{Enter}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{ }"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{Esc}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^A"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^C"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^V"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"%{tab}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"%+{tab}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{alt+空格+N}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{alt+空格+X}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{F1}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{F2}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{F3}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{F4}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{F5}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{F6}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{F7}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{F8}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{F9}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{F10}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{F11}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{F12}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{BackSpace}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{Home}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{End}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{win}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{DELETE}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^X"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^D"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^N"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^O"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{CTRL+空格}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{WIN+D}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{WIN+ E}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{WIN+ M}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{WIN+ R}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{WIN+ I}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{Shift + Tab}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{Ctrl+tab}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{CTRL+Shift}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{ALT+F4}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{ALT+Enter}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^{Esc}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^{ALT+DELETE}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{SHIFT+DELETE}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^S"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{SHIFT+F10}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^{F4}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{ALT+空格键}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"{Ctrl+W}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^Z"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^Y"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

SendKeys.Send"^{F11}"
'等待一段时间,确保程序已经成功打开
Threading.Thread.Sleep(200)

End Sub

  • 15
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
VB.NET 中,您可以使用 SendMessage 函数来发送消息给其他窗口。该函数位于 user32.dll 动态链接库中,因此您首先需要导入该库。 下面是一个示例代码,演示如何使用 SendMessage 函数: ```vb Imports System.Runtime.InteropServices Public Class Form1 ' 导入 SendMessage 函数 <DllImport("user32.dll", CharSet:=CharSet.Auto)> _ Private Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr End Function ' 定义常量 Private Const WM_COPYDATA As Integer = &H4A Private Const WM_CLOSE As Integer = &H10 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' 找到目标窗口的句柄 Dim targetWindowHandle As IntPtr = FindWindow(Nothing, "目标窗口标题") ' 创建要发送的字符串 Dim messageText As String = "Hello, world!" ' 将字符串转换为字符数组 Dim messageBytes As Byte() = System.Text.Encoding.Unicode.GetBytes(messageText) ' 分配内存并复制字符数组 Dim messageData As IntPtr = Marshal.AllocHGlobal(messageBytes.Length) Marshal.Copy(messageBytes, 0, messageData, messageBytes.Length) ' 准备 COPYDATASTRUCT 结构体 Dim copyData As New COPYDATASTRUCT() copyData.dwData = IntPtr.Zero copyData.cbData = messageBytes.Length copyData.lpData = messageData ' 将 COPYDATASTRUCT 结构体封装为指针 Dim copyDataPtr As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(copyData)) Marshal.StructureToPtr(copyData, copyDataPtr, False) ' 发送消息 SendMessage(targetWindowHandle, WM_COPYDATA, Me.Handle, copyDataPtr) ' 释放内存 Marshal.FreeHGlobal(messageData) Marshal.FreeHGlobal(copyDataPtr) End Sub ' COPYDATASTRUCT 结构体定义 <StructLayout(LayoutKind.Sequential)> _ Private Structure COPYDATASTRUCT Public dwData As IntPtr Public cbData As Integer Public lpData As IntPtr End Structure End Class ``` 在上面的示例中,您需要将 "目标窗口标题" 替换为您要发送消息的窗口的标题。您还可以根据您的需求调整消息的内容和格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EYYLTV

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值