一个很老的经典问题!delphi发送组合键,欢迎大家来讨论。(100分)

  • 主题发起人 主题发起人 鸢都剑客
  • 开始时间 开始时间
to:tzlaoliu 谢谢光临,但人你的代码,不是我想要的。
 
唉!用delphi自带的Sendkey 吧。迎刃而解。
 
to :dorry  看清题目再发言。
 
好几天没来了。还没人来参加了啊!!!
 
我帮你顶,我也想知道[:D]<br>PostThreadMessage(GmHandle,WM_SYSKEYDOWN,90,(1 shl 29));<br>这一句的用法不太明白,想象LZ问一下,后面的两个参数是什么意思?<br>90,(1 shl 29) &nbsp;???
 
可以换个思路,已知道程序Handle,可以先激活后再用keybd_event发消息不就可以了,这两个都好实现的,
 
to 3cs<br>&nbsp;(1 shl 29) &nbsp;是在第29位标为1<br><br>to dgtg0710<br>&nbsp; &nbsp;<br>keybd_event 是能是在目标程序激活的状态下才能用。
 
还有人来吗。自己再顶一次
 
写这个建议使用AutoIt(要是每听说,就google一下),真的很简单。
 
帮你顶一下
 
说难就难, 说容易就容易.<br><br>找个汇编高手, 把记事本打开菜单的基址找出来, 然后CALL一下, 就不用发送按键了. 例如因为很多游戏都是认驱动的, 发送按键根本不起作用.
 
全文检索 AttachThreadInput就可以了!
 
to: linuxping,wql,请看清问题再说。
 
嘿嘿!对啊!看青出了!<br>用AttachThreadInput就可以反问(包含发送键,取text内容等)别的<br>程序的窗口句并了!
 
to: wql<br>&nbsp;你没有看清问题,我问的是如何发送ALT的组合键。AttachThreadInput是关连两个进程,不用关联也可以发送的,我早已实现发了“单键”,“字符”;只是发送ALT的组合键是遇到问题。
 
那么就是gulang描述的大概意思了!
 
哎!!还是没看清楚我的要求,keybd_event行不通。注意我说的是在不激活目标程序的情况下。对目标程序发送ALT的组合键。用keybd_event先激活再发送,是会有问题的。在激活目标后还未发送按键消息前,可能会发生另一个程序激活取得了焦点。造成失败!!!
 
嘿嘿!不在即或状态下发送,就算发送成功了,OS马上把notepad.exe即或到前端窗口!
 
呵呵!!我要的是能保证接ALT发送到目标程序!!
 
潍坊的 啊 ?<br>老乡啊
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部