精易论坛

标题: 模拟输入字符区别大小写特殊字符 [打印本页]

作者: 祁辛    时间: 2016-11-29 21:12
标题: 模拟输入字符区别大小写特殊字符
问答区有人需要这样的
就写了个

发出来供大家参考


  
窗口程序集名保 留  保 留备 注
窗口程序集_窗口1   
子程序名返回值类型公开备 注
_按钮_开始投递_被单击  
变量名类 型静态数组备 注
hwnd  
hwnd = FindWindowA (“Notepad”, “测试文本.txt - 记事本”)
如果真 (0 = hwnd)
输出调试文本 (“句柄不能为空”)
返回 ()

独立线程 (hwnd, 编辑框_投递的文本.内容, 199, -36)
子程序名返回值类型公开备 注
独立线程  
参数名类 型参考可空数组备 注
hwnd整数型
inputdata文本型
x整数型
y整数型
如果真 (hwnd = 0 取文本长度 (inputdata) ≤ 0)
返回 ()
如果真 (模拟鼠标单击 (hwnd, x, y))
模拟投递文本 (inputdata, hwnd)

子程序名返回值类型公开备 注
模拟投递文本  
参数名类 型参考可空数组备 注
inputdata文本型要输入的内容
hwnd 
变量名类 型静态数组备 注
stringlength整数型字符串长度
i整数型 
ascii整数型 
tmphwnd  
bscan整数型 
state整数型 
stringlength = 取文本长度 (inputdata)
计次循环首 (stringlength, i)
ascii = 取代码 (inputdata, i)
处理事件 ()
tmphwnd = GetForegroundWindow ()
如果真 (tmphwnd ≠ hwnd)
SwitchToThisWindow (hwnd, 1)
延时 (50)
判断 (ascii ≥ 取代码 (“a”, ) ascii ≤ 取代码 (“z”, ))
state = GetKeyState (20)
如果真 (state = 1)
keybd_event (20, 0, 0, 0)
keybd_event (20, 0, 2, 0)
keybd_event (ascii - 32, 0, 0, 0)
延时 (50)
keybd_event (ascii - 32, 0, 2, 0)
判断 (ascii ≥ 取代码 (“A”, ) ascii ≤ 取代码 (“Z”, ))
state = GetKeyState (20)
如果真 (state ≠ 1)
keybd_event (20, 0, 0, 0)
keybd_event (20, 0, 2, 0)
keybd_event (ascii, 0, 0, 0)
延时 (50)
keybd_event (ascii, 0, 2, 0)
判断 (ascii = 33)  ' !
keybd_event (16, 0, 0, 0)
keybd_event (49, 0, 0, 0)
延时 (50)
keybd_event (49, 0, 2, 0)
keybd_event (16, 0, 2, 0)
判断 (ascii = 35)  ' #
keybd_event (16, 0, 0, 0)
keybd_event (51, 0, 0, 0)
keybd_event (51, 0, 2, 0)
keybd_event (16, 0, 2, 0)
判断 (ascii = 36)  ' $
keybd_event (16, 0, 0, 0)
keybd_event (52, 0, 0, 0)
keybd_event (52, 0, 2, 0)
keybd_event (16, 0, 2, 0)
判断 (ascii = 37)  ' %
keybd_event (16, 0, 0, 0)
keybd_event (53, 0, 0, 0)
keybd_event (53, 0, 2, 0)
keybd_event (16, 0, 2, 0)
判断 (ascii = 38)  ' &
keybd_event (16, 0, 0, 0)
keybd_event (55, 0, 0, 0)
keybd_event (55, 0, 2, 0)
keybd_event (16, 0, 2, 0)
判断 (ascii = 94)  ' ^
keybd_event (16, 0, 0, 0)
keybd_event (54, 0, 0, 0)
keybd_event (54, 0, 2, 0)
keybd_event (16, 0, 2, 0)
判断 (ascii = 42)  ' *
keybd_event (16, 0, 0, 0)
keybd_event (56, 0, 0, 0)
keybd_event (56, 0, 2, 0)
keybd_event (16, 0, 2, 0)
判断 (ascii = 40)  ' (
keybd_event (16, 0, 0, 0)
keybd_event (57, 0, 0, 0)
keybd_event (57, 0, 2, 0)
keybd_event (16, 0, 2, 0)
判断 (ascii = 41)  ' )
keybd_event (16, 0, 0, 0)
keybd_event (48, 0, 0, 0)
keybd_event (48, 0, 2, 0)
keybd_event (16, 0, 2, 0)
判断 (ascii = 64)  ' @
keybd_event (16, 0, 0, 0)
keybd_event (50, 0, 0, 0)
keybd_event (50, 0, 2, 0)
keybd_event (16, 0, 2, 0)
keybd_event (ascii, 0, 0, 0)
延时 (50)
keybd_event (ascii, 0, 2, 0)


' bscan = MapVirtualKeyA (ascii, 0)
' keybd_event (16, 0, 0, 0)
' keybd_event (ascii - 32, 0, 0, 0)
' 延时 (50)
' keybd_event (ascii - 32, 0, 2, 0)
' keybd_event (16, 0, 2, 0)
延时 (50)
编辑框1.加入文本 (“按下键盘:  ”到文本 (ascii)#换行符 )
计次循环尾 ()
子程序名返回值类型公开备 注
模拟鼠标单击逻辑型 
参数名类 型参考可空数组备 注
hwnd整数型窗口句柄
X整数型X轴坐标
Y整数型Y轴坐标
变量名类 型静态数组备 注
屏幕坐标RECT 
如果真 (GetWindowRect (hwnd, 屏幕坐标))
返回 ()
如果真 (API_SetCursorPos (屏幕坐标.left + X, 屏幕坐标.top + Y) ≠ 0)
mouse_event ( #MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
延时 (50)
mouse_event ( #MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
返回 ()
返回 ()




作者: 梦°    时间: 2016-11-29 21:25
顶楼主啦..希望楼主多发精品好帖啦.....
作者: 火狐编程    时间: 2016-11-29 21:31
学习下,不错!~

作者: zzzzzzzz88    时间: 2016-11-29 21:33
模拟输入字符区别大小写特殊字符

作者: wt5861    时间: 2016-11-29 21:54
这个没时钟 怎么实时投递的 我没懂

作者: 汉族    时间: 2016-11-29 22:15
其实  投递文本 直接 postmessgaa(hwnd,msg,lpram,wpram)  直接  msg=258   lpram= ASCLL字符
作者: Narkylix    时间: 2016-11-29 22:32
可以,强势 支持
作者: qiuyingjia    时间: 2016-11-29 23:16
可以的,支持
作者: 堕天圣黑猫    时间: 2016-11-30 03:53
看起来效果不错嘛(°ー°〃)
作者: E丶JavaScript    时间: 2016-11-30 04:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: 工程师8421    时间: 2016-11-30 08:20
支持!!!!支持!!!!
作者: 358379357    时间: 2016-11-30 09:05
谢谢分享 S
作者: 自强不息    时间: 2016-11-30 09:32
谢谢分享。
作者: hljmake    时间: 2016-11-30 11:47
不错啊正好需要

作者: hljmake    时间: 2016-11-30 11:55
wt5861 发表于 2016-11-29 21:54
这个没时钟 怎么实时投递的 我没懂

计次循环           
作者: dodge123    时间: 2016-11-30 13:17
不错啊正好需要
作者: zaiwulatiao    时间: 2016-11-30 14:17
看看66666666666666
作者: 李逸梵    时间: 2016-11-30 17:38
感谢分享。

作者: 12144112    时间: 2016-11-30 22:34
感谢分享!下来试试
作者: ﹏小丑の状态不    时间: 2016-11-30 23:32
厉害了 我的歌

作者: a365326    时间: 2017-5-23 14:26
这个不错,谢谢开源
作者: BlackMamba    时间: 2017-10-13 15:00
感谢分享!
作者: tangjiashiertui    时间: 2020-12-3 11:08
了不起!!!!!!!!!!!!!!!
作者: lu12a    时间: 2023-1-14 08:46

作者: lu12a    时间: 2023-1-14 08:48





欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4