当前位置:首页 » 程序代码 » 正文

用VB做一个输入法:发送字符到其它窗口 方法2

在做发送字符代码之前,先把让窗体无焦点的代码输入好,具体见上一篇文章 www.wb86.com/post/39.html
输入好使窗口无焦点的代码后,在窗口画一个标签(画标签,是因为标签控件没有焦点),标签的点击事件代码是:
Private Sub Label1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Clipboard.Clear '要先清空剪贴板
    Clipboard.SetText "a" '添加字符到剪贴板里

    keybd_event 162, 0, 0, 0  '模拟按下CTRL
    keybd_event 86, 0, 0, 0   '模拟按下V键
    keybd_event 86, 0, KEYEVENTF_KEYUP, 0 '模拟抬起V键k
    keybd_event 162, 0, KEYEVENTF_KEYUP, 0 '模拟抬起CTRL键
End Sub

以上代码是通过模拟键盘操作,到剪贴板的字符发送到有焦点的其它窗体中。
具体说,把是通过按 ctrl + v键来复制粘贴字符到其它窗口中。
因为是模拟键盘操作,所在窗体模块还要先输入模拟键盘操作的相关API代码:

Rem 模拟按键声明
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Rem 模拟按钮常数
Private Const KEYEVENTF_KEYUP = &H2
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Const VK_CAPITAL As Long = &H14
Private Const VK_NUMLOCK As Long = &H90
Private Const VK_SHIFT = &H10
Private Const VK_CONTROL = &H11
Private Const VK_ALT = &H12

调用一个记事本或写字板或浏览器来,编译好EXE后,再运行上述程序,点击标签1后,你会发现:
第二行代码 Clipboard.SetText "a"
改成下面任何一句都是可以成功发送字符串到相应的输入框中。
Clipboard.SetText "abc"
Clipboard.SetText "ABCD"
Clipboard.SetText "美容美发"
Clipboard.SetText "我的网站是:wb86.com"

如中文输入法在调用,这段发送字符串的代码也是一样管用,你可以试试。

打赏 支付宝打赏 微信打赏

来源:济亨网

本文链接:https://wb98.com/post/40.html

VB代码  API  
    << 上一篇 下一篇 >>

    湘公网安备 43011102000514号 - 湘ICP备08100508号