关于KEY_EVENT()的用法的一个小问题~~~ ( 积分: 30 )

  • 主题发起人 主题发起人 xywxl
  • 开始时间 开始时间
X

xywxl

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在使用KEY_EVENT()的过程中发现,使用keybd_event(Ord(str),0,0,0)发送字符的时候,<br><br>发送大写字母及数字是没有问题的,发送小写字母就有问题了,实际发送过去的是&quot;1&quot;<br><br>发送一些其他字符例如:~!@#$%^&amp;* &nbsp;的时候也会出问题<br><br>请问这里面有什么对应关系啊,<br><br>应该如何做啊 ,<br><br>谁有没有关于这个的例子啊,发一个给偶参考参考,谢谢拉:)
 
本人在使用KEY_EVENT()的过程中发现,使用keybd_event(Ord(str),0,0,0)发送字符的时候,<br><br>发送大写字母及数字是没有问题的,发送小写字母就有问题了,实际发送过去的是&quot;1&quot;<br><br>发送一些其他字符例如:~!@#$%^&amp;* &nbsp;的时候也会出问题<br><br>请问这里面有什么对应关系啊,<br><br>应该如何做啊 ,<br><br>谁有没有关于这个的例子啊,发一个给偶参考参考,谢谢拉:)
 
嘿嘿,不用ord,用str不行?
 
我试试:)
 
用postmessage发送吧。<br>postmessage(edit1.handle,wm_char,wParam('@'),0)
 
TOchenybin,使用str会提示语法错误,我想应该是keydb_event发送的与ASCII对应关系不一样
 
TOhongxing_dl,正是因为无法获得窗口内孔件的句柄我才用的keybd_event(),<br>也是不得以才为之
 
谁能提供将VirtualKey 码和ASCII互相转换的函数啊,谢谢拉
 
chr &nbsp;ord
 
KEY_EVENT 是完全模拟按键,所以不能简单的用keybd_event(Ord(str),0,0,0),<br>如果要输入“@”符号,应该用下面的方法:<br>keybd_event(vk_shift,0,0,0);<br>keybd_event(Ord('2'),0,0,0);<br>keybd_event(Ord('2'),0,KEYEVENTF_KEYUP,0);<br>keybd_event(vk_shift,0,KEYEVENTF_KEYUP,0);
 
对于!@#$%等须要<br>先发送SHIFT KEYDOWN<br>再发送对应12345的ASCII值<br>最后再发送SHIFT KEYUP
 
请问:<br>我现在要做的是一个自动输入用户名与密码,自动登陆的软件,那是不是在使用KEYBD_EVENT()的时候,要非各中情况,详细判断字符的情况,然后采取不同的语句?<br><br>要分为:<br><br>1、数字<br>2、小写字母<br>3、大写字母<br>4、需要与SHIFT组和使用的字符?
 
对,只能这样了。
 
哪位大侠有现成的判断转换代码啊,帖一下偶就省事拉:)
 
问题已经基本解决,但是仍然无法发送中文和其他一些特殊字符,例如:《》|/<br><br>发分拉,见者有份
 
后退
顶部