delphi7.0 模拟按键问题,我有一串字符 123!@#,<>/?Aaaaa 全键盘字符 的字符串,怎么用模拟按键输出。

目前小写英文和数字可以了,就是特殊字符不行,请问哪个大虾指点一下。。... 目前小写英文和数字可以了,就是特殊字符不行,请问哪个大虾指点一下。。 展开
 我来答
xyc198600_126
2013-03-27 · TA获得超过135个赞
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:123万
展开全部
//按键--可见字符,tmp就是你要输出的字符串
for tmp := 1 to Length(v) do
begin
if(VkKeyScan(v[tmp])>256)then
begin
keybd_event(vk_Shift,0,0,0);
keybd_event(Ord(v[tmp]),0,0,0);
keybd_event(Ord(v[tmp]),0,2,0);
keybd_event(vk_Shift,0,2,0);
end
else
begin
keybd_event(VkKeyScan(v[tmp]),0,0,0);
keybd_event(VkKeyScan(v[tmp]),0,2,0);
end;
end;
对于无可见字符的按键,如Ctrl Shift Home等键就只能通过键码了
keybd_event(vk_Shift,0,0,0); //按下Shift键,
keybd_event(16,0,0,0); //同样是按下Shift键,在DELPHI里按住Ctrl 再用鼠标点击vk_Shift,你会发现它其实就是一个常量,值就是16,而16正是Shift的按键值

keybd_event(vk_Shift,0,2,0); //松开Shift键,

其他键就是相同的道理啦
sirouszlh
2013-03-27 · TA获得超过1651个赞
知道小有建树答主
回答量:1038
采纳率:100%
帮助的人:642万
展开全部
Edit1.setfocus;
keybd_event(86,MapVirtualKey(86,0),0,0);
keybd_event(86,MapVirtualKey(86,0),2,0);

以上86就是字母v的键值 功能就是设置输入焦点在edit1。
然后在edit1模拟一个按键消息 输入一个小写v 这个你已经没问题了

平常我们怎么输入V的? 那是可以按住Shift 再按v建 那就成了输入大写V了

所以按键消息也是这么模拟的

keybd_event(VK_SHIFT ,0,0,0);//按下shift键
keybd_event(86,MapVirtualKey(86,0),0,0);//按下v键
keybd_event(86,MapVirtualKey(86,0),2,0);//抬起v键
keybd_event(VK_SHIFT ,0,2,0);//抬起Shift键 这就是实现了输入大写V

至于输入@ 也是一样道理 @键在我电脑上就是2键 所以
1 按下shift键
2 按下2键
3 松开2键
4 松开Shift键

专业代做各类软件,回扣巨大
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式