社区
Windows SDK/API
帖子详情
keybd_event 模似键盘, 怎么打中文
骄傲青蛙
2009-10-21 01:12:32
模似键盘, 怎么输出字符串, 怎么输出中文 ?
...全文
784
27
打赏
收藏
keybd_event 模似键盘, 怎么打中文
模似键盘, 怎么输出字符串, 怎么输出中文 ?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
骄傲青蛙
2009-10-25
打赏
举报
回复
[Quote=引用 26 楼 hjkto 的回复:]
在qq里好用,没想到在代码中不好用
后来找到了爱字的正确ascii码值:45230
解决了
[/Quote]
这几天, 我忙着别的事情, 暂时没空研究这个, 不知你有什么成果 , 我看到了一半
hjkto
2009-10-23
打赏
举报
回复
在qq里好用,没想到在代码中不好用
后来找到了爱字的正确ascii码值:45230
解决了
hjkto
2009-10-23
打赏
举报
回复
我也找到原因了
哪个爱字的ascii码错了,我是用系统自带的字符映射器和百度搜索到的,在qq和
无条件为你
2009-10-23
打赏
举报
回复
19楼的代码可以打中文,看来楼主的问题离解决不远了。
我是三楼的,既然楼主已经加分,我再多给些提示:
打中文时需要注意中文与字母或数字混杂在一起的情况。本来我想直接给你贴出代码,可是考虑到楼上已经有这么多人回答了比较接近正常答案的回复,我再贴出代码也未必能拿到你给的全部分。因此再给你一些提示算了。这样也激发楼的一点钻研精神。
hjkto
2009-10-23
打赏
举报
回复
52946 这个“我”字,是怎么得来的
我用系统的字符映射器,“我”字应该是25105
求解?
hjkto
2009-10-23
打赏
举报
回复
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.SetFocus;
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
keybd_event(VK_NUMPAD5, MapVirtualKey(VK_NUMPAD5, 0), 0, 0);
keybd_event(VK_NUMPAD5, MapVirtualKey(VK_NUMPAD5, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_NUMPAD2, MapVirtualKey(VK_NUMPAD2, 0), 0, 0);
keybd_event(VK_NUMPAD2, MapVirtualKey(VK_NUMPAD2, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_NUMPAD9, MapVirtualKey(VK_NUMPAD9, 0), 0, 0);
keybd_event(VK_NUMPAD9, MapVirtualKey(VK_NUMPAD9, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_NUMPAD4, MapVirtualKey(VK_NUMPAD4, 0), 0, 0);
keybd_event(VK_NUMPAD4, MapVirtualKey(VK_NUMPAD4, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_NUMPAD6, MapVirtualKey(VK_NUMPAD6, 0), 0, 0);
keybd_event(VK_NUMPAD6, MapVirtualKey(VK_NUMPAD6, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);
sleep(100);
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
keybd_event(VK_NUMPAD2, MapVirtualKey(VK_NUMPAD2, 0), 0, 0);
keybd_event(VK_NUMPAD2, MapVirtualKey(VK_NUMPAD2, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_NUMPAD9, MapVirtualKey(VK_NUMPAD9, 0), 0, 0);
keybd_event(VK_NUMPAD9, MapVirtualKey(VK_NUMPAD9, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_NUMPAD2, MapVirtualKey(VK_NUMPAD2, 0), 0, 0);
keybd_event(VK_NUMPAD2, MapVirtualKey(VK_NUMPAD2, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_NUMPAD3, MapVirtualKey(VK_NUMPAD3, 0), 0, 0);
keybd_event(VK_NUMPAD3, MapVirtualKey(VK_NUMPAD3, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_NUMPAD3, MapVirtualKey(VK_NUMPAD3, 0), 0, 0);
keybd_event(VK_NUMPAD3, MapVirtualKey(VK_NUMPAD3, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);
end;
end.
为什么,第二个字“爱”字,打出来是r呢?
gwhdaxia
2009-10-23
打赏
举报
回复
应该还要去判断下是汉字还是字母,还挺麻烦的
gwhdaxia
2009-10-23
打赏
举报
回复
str := '问';
tmpstr := Inttostr(byte(str[1]) shl 8 + byte(str[2])) ;
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
while length(tmpstr)>0 do
begin
itmp := StrToInt(LeftStr(tmpstr,1))+96;
tmpstr := RightStr(tmpstr,Length(tmpstr)-1);
keybd_event(itmp, MapVirtualKey(itmp, 0), 0, 0);
keybd_event(itmp, MapVirtualKey(itmp, 0), KEYEVENTF_KEYUP, 0);
end;
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);
hjkto
2009-10-23
打赏
举报
回复
[Quote=引用 17 楼 coolesting 的回复:]
引用 15 楼 hjkto 的回复:
引用 14 楼 byteh 的回复:
keybd_event模拟输出字符还行,打中文思路不对,考虑各种输入法的编码和键盘布局了吗?
3楼说行,你就试了半个晚上,也没弄成
郁闷
有难度, 看帖
http://topic.csdn.net/u/20090121/16/fdb85822-9d4d-47e2-8662-75b08d968bb0.html
[/Quote]
人家做到了
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.SetFocus;
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), 0, 0);
keybd_event(VK_NUMPAD5, MapVirtualKey(VK_NUMPAD5, 0), 0, 0);
keybd_event(VK_NUMPAD5, MapVirtualKey(VK_NUMPAD5, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_NUMPAD2, MapVirtualKey(VK_NUMPAD2, 0), 0, 0);
keybd_event(VK_NUMPAD2, MapVirtualKey(VK_NUMPAD2, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_NUMPAD9, MapVirtualKey(VK_NUMPAD9, 0), 0, 0);
keybd_event(VK_NUMPAD9, MapVirtualKey(VK_NUMPAD9, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_NUMPAD4, MapVirtualKey(VK_NUMPAD4, 0), 0, 0);
keybd_event(VK_NUMPAD4, MapVirtualKey(VK_NUMPAD4, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_NUMPAD6, MapVirtualKey(VK_NUMPAD6, 0), 0, 0);
keybd_event(VK_NUMPAD6, MapVirtualKey(VK_NUMPAD6, 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_MENU, MapVirtualKey(VK_MENU, 0), KEYEVENTF_KEYUP, 0);
end;
end.
看来,还是你自己把问题解决了!
佩服楼主
骄傲青蛙
2009-10-23
打赏
举报
回复
模似剪粘板
http://www.cnblogs.com/feiyucq/archive/2009/08/09/1542456.html
骄傲青蛙
2009-10-23
打赏
举报
回复
[Quote=引用 15 楼 hjkto 的回复:]
引用 14 楼 byteh 的回复:
keybd_event模拟输出字符还行,打中文思路不对,考虑各种输入法的编码和键盘布局了吗?
3楼说行,你就试了半个晚上,也没弄成
郁闷
[/Quote]
有难度, 看帖
http://topic.csdn.net/u/20090121/16/fdb85822-9d4d-47e2-8662-75b08d968bb0.html
lek608
2009-10-23
打赏
举报
回复
这是我模拟输入R字母和鼠标事件的一段程序:你可以参考
if (hParent <> 0) then
ShellExecute(handle,'open',Pchar(filestr),nil,nil,sw_shownormal);
sleep(2000);
keybd_event(ord(82), MapVirtualKey(ord(82), 0 ),0, 0 );
keybd_event(ord(82), MapVirtualKey(ord(82), 0 ),KEYEVENTF_KEYUP, 0 );
sleep(2000);
SetCursorPos(0,0);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
keymouseblock(0);
hjkto
2009-10-23
打赏
举报
回复
[Quote=引用 14 楼 byteh 的回复:]
keybd_event模拟输出字符还行,打中文思路不对,考虑各种输入法的编码和键盘布局了吗?
[/Quote]
3楼说行,你就试了半个晚上,也没弄成
郁闷
byteh
2009-10-23
打赏
举报
回复
keybd_event模拟输出字符还行,打中文思路不对,考虑各种输入法的编码和键盘布局了吗?
hjkto
2009-10-23
打赏
举报
回复
按3楼的思路给你写了一下,没有成功,看来,没哪么简单!!
shaoyiping
2009-10-22
打赏
举报
回复
哥哥我一般用 SetWindowText(HWND hwnd,LPCTSTR lpStrjng);
winstonbonaparte
2009-10-22
打赏
举报
回复
語法稍為不一樣,有些屬性可能也不一樣。其它沒啥的
骄傲青蛙
2009-10-22
打赏
举报
回复
[Quote=引用 5 楼 veron_04 的回复:]
我有一个VB的例子,你看得懂VB不?要是需要,给我消息
[/Quote]
发来参考, 但VB转换为delphi, 不知那些系统自带的功能会有不
hjkto
2009-10-22
打赏
举报
回复
按住alt+39277出现 饭,alt+26742出现 桶
hjkto
2009-10-22
打赏
举报
回复
[Quote=引用 10 楼 coolesting 的回复:]
我想把Eidi1.text的内容, 用keybd_event打出去,
[/Quote]
你的想法,我也赞成,但我也不会,每天帮你顶一下,就当支持。
写程序,怎么复杂怎么写
加载更多回复(7)
key
bd
_
event
,mouse_
event
模拟产生
键盘
事件、鼠标事件的使用
模拟鼠标、模拟
键盘
事件,有时候非常有用,比如在自动化测试中
基于
key
bd
_
event
函数在window系统下的模拟
键盘
输入源码
一个基于
key
bd
_
event
函数在window系统下的模拟
键盘
输入源码,可以实现在winodw系统下输入任何字符串
VC 利用postmessage和
key
bd
_
event
给其他程序发送消息
VC 利用postmessage和
key
bd
_
event
给其他程序发送消息,能成功发送CTRL/SHIFT/ALT键
C# 写的模拟
键盘
,可设置输入法,可输入
中文
,不抢占焦点。
C# 写的模拟
键盘
的动态库,利用了
key
bd
_
event
函数。可以设置输入法。
key
bd
_
event
:用于在golangLinux,Windows和Mac中模拟按键
该库模拟
键盘
上的按键。 它可以在Linux,Windows和Mac上运行。 重要事项: 键会在目标计算机的不同
键盘
布局中更改。 我已经在系统上测试了此代码,但没有发现任何错误。 如果有错误,请创建一个问题。 范例: ...
Windows SDK/API
1,183
社区成员
22,335
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章