高手帮一下忙,看这个问题应该怎么解决。
平时用SendKeys的时候,都是针对整个系统有效的。
比如SendKeys "%{TAB}" ,整个系统就切换桌面窗口。
现在的问题是,有没办法让SendKeys只针对某个控件有效而不是整个系统有效?
比如说有一个WebBrowser控件打开了一个网页.
网页里面有很多链接,这时按下Tab键的话就是切换链接。
这里问题出来了,能不能让VB发送Tab键给WebBrowser控件呢,
不论VB窗体是否处于激活状态,都会向WebBrowser控件发送Tab键,
并且发送的Tab键只针对WebBrowser控件有效而不是针对整个系统.
我明白你的意思,我提问之后才想起的.
我的意思是,能不能不管窗口是否活动都对它有效.?
楼主恐怕你弄错了.
它不会对整个系统有效的.
首先你先要了解它是干什么的.
它的作用是向WINDOWS的活动窗口发送一个按键消息(也就是说具有焦点的窗口才能接收到这个消息).如果你想让哪个窗口接收按键消息,你只须激活这个窗口就OK了.
能,那你就得调用API了,SendKeys是做不到这个功能的.
获取那个程序的句柄,然后跟句柄向那个程序发送键盘按键消息.
这方面的资料我也没有,你倒网上找找吧.
祝你早日成功.
它不会对整个系统有效的.
首先你先要了解它是干什么的.
它的作用是向WINDOWS的活动窗口发送一个按键消息(也就是说具有焦点的窗口才能接收到这个消息).如果你想让哪个窗口接收按键消息,你只须激活这个窗口就OK了.
能,那你就得调用API了,SendKeys是做不到这个功能的.
获取那个程序的句柄,然后跟句柄向那个程序发送键盘按键消息.
这方面的资料我也没有,你倒网上找找吧.
祝你早日成功.
温馨提示:答案为网友推荐,仅供参考
第1个回答 2007-07-17
其实不是对整个系统有效,只是对前台窗口有效,而且单单发送一个 tab键是不用 % 的,不然就会切换窗口
对与vb的控件可以用控件的SetFocus来设置焦点,这是用sendkeys发送的键就对这个控件起作用,对于另外的只知道句柄的窗口可以用
Public Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long
来设置,然后在用sendkeys
*
*
*
不知道能不能用 API SendMessage 做,我没试过
对与vb的控件可以用控件的SetFocus来设置焦点,这是用sendkeys发送的键就对这个控件起作用,对于另外的只知道句柄的窗口可以用
Public Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long
来设置,然后在用sendkeys
*
*
*
不知道能不能用 API SendMessage 做,我没试过