开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2702|回复: 10
收起左侧

[易语言] 模拟键盘输入的问题!(我所有的金币用完了)

[复制链接]
结帖率:50% (2/4)
发表于 2011-5-27 22:23:37 | 显示全部楼层 |阅读模式   赤道几内亚
2精币
本帖最后由 是要不要骑牛您 于 2011-5-28 02:45 编辑

如题:编辑框有文字:[url=mailto:AaBc125@#$[]]AaBc125@#$[]"0[/url])
要求:模拟键盘敲击,输出,任一个获得系统焦点的输入点(就是说,这个时候,按键盘能输入),能做到,和键盘敲击一样的效果
原因:现在很多系统都在检查是否手工输入,常用的直接粘贴,直接写入,似乎会被检查出来。我的想法就是能不能做到,根本检查不来.
注:要是能模拟汉字输入,就更好了{:soso__2996043132114222792_1:}(模拟汉字,是麻烦点,不再讨论中...)


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:25% (1/4)
发表于 2011-5-27 22:49:31 | 显示全部楼层   福建省福州市
置剪贴板   模拟按键

ps:不知C++是怎么模拟中文!

点评

下面给的代码,更先进点,可以后台发送,不需要系统的焦点,直接丢给程序   赤道几内亚  发表于 2011-5-27 23:38
偶记得可以,N年前做过一个喊话器,就是用的模拟键盘操作,用的函数是:keybd_event   赤道几内亚  发表于 2011-5-27 23:22
回复

使用道具 举报

结帖率:100% (3/3)
发表于 2011-5-27 22:52:42 | 显示全部楼层   天津市天津市
应该是发送命令吧,好像不是,
回复

使用道具 举报

结帖率:67% (2/3)
发表于 2011-5-27 23:17:09 | 显示全部楼层   广东省佛山市
我最近做了一个远程控件工具,在控制端基本可以实现在被控端进入各种输入,包括汉字。用的也只是一个API。关键还是要不断钻研。至于如果将编辑框内容转化为键盘动作,只是你自定义的一个记录和解释的过程而已。

.版本 2

.DLL命令 DDL模拟键盘行动, 整数型, "user32.dll", "keybd_event", , , 这个函数模拟了键盘行动
    .参数 键代码, 整数型, , bVk,欲模拟的虚拟键码
    .参数 键扫描码, 整数型, , bScan,键的OEM扫描码
    .参数 标志值, 整数型, , dwFlags,标志常数
    .参数 特定值, 整数型, , dwExtraInfo

点评

精益模块中有一个"键盘_单击"函数,有很多毛病   赤道几内亚  发表于 2011-5-27 23:48
回复

使用道具 举报

结帖率:25% (1/4)
发表于 2011-5-27 23:25:15 | 显示全部楼层   福建省福州市
中文输入,使用的输入法不同,不知如何"模拟按键"

点评

不能模拟按键,就模拟输入法,怎么给对象发汉字的?   赤道几内亚  发表于 2011-5-27 23:41
回复

使用道具 举报

结帖率:50% (2/4)
 楼主| 发表于 2011-5-27 23:27:50 | 显示全部楼层   赤道几内亚
本帖最后由 是要不要骑牛您 于 2011-5-28 02:53 编辑

新学习,易语言,所以想这么一个功能,易语言应该简单的就能够实现,谁知道。。。{:3_227:}
这一段代码是我以前写的,用的是发消息的方法,给对应的窗口,效果还是不错的,用来当喊话器的输出,应该是可以的,把窗口的句柄和要喊话的内容传入,就可以了
改改就行了
void __fastcall GameWin::SendKeys(AnsiString sSend)
{
int i,j;
char ch;
int lparam;
j=sSend.Length() ;
for(i=1;i<=j;i++)
  {
   ch=sSend;
   if(IsDBCSLeadByte(ch))
     {
      i++;
      SendMessage(this->hwnd,WM_IME_CHAR,MAKEWORD(sSend,ch),0);
     }
    else
     SendMessage(this->hwnd,WM_IME_CHAR,ch,0);
  }
lparam=MapVirtualKey(13,0) << 16 | 1;
PostMessage(this->hwnd,WM_KEYDOWN,13,lparam);
PostMessage(this->hwnd,WM_KEYUP,13,lparam);
PostMessage(this->hwnd,WM_CHAR,13,lparam);
}

回复

使用道具 举报

结帖率:50% (2/4)
 楼主| 发表于 2011-5-27 23:30:10 | 显示全部楼层   赤道几内亚
本帖最后由 是要不要骑牛您 于 2011-5-28 02:54 编辑

占个位置
回复

使用道具 举报

结帖率:92% (12/13)
发表于 2011-5-27 23:32:46 | 显示全部楼层   湖南省湘潭市
额。  
  想了下。
  没想到思路

  要睡觉了
。。。
回复

使用道具 举报

结帖率:67% (2/3)
发表于 2011-5-27 23:48:59 | 显示全部楼层   广东省佛山市
是要不要骑牛您 发表于 2011-5-27 23:30
以上代码,可以发送,任意汉字到指定的窗口

只是一个简单的发信息代码。。。有什么先进的?
而且很明显不是你说的可以任意窗口。。。。

点评

有需要按键盘的,难道抓不到他的句柄吗?   赤道几内亚  发表于 2011-5-28 00:00
回复

使用道具 举报

结帖率:25% (1/4)
发表于 2011-5-28 00:53:38 | 显示全部楼层   福建省福州市
一会儿模拟键盘,一会儿SendMessage,PostMessage...
把字符串,分解为字节字组,对应每一个字符的机器码
是我对易语言不熟还是。。
用C++道是没有这个问题,直接用就是,其他的语音好像也没有这么麻烦
易这里,一个字节的文本型,转换为字节型,难道需要建立一个字典,去转换吗
一会儿文本型,一会儿字节型,一会儿字节字组...?


ps:膜拜下学了n年的C++前辈...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表