ehxz 发表于 2010-1-26 08:41:27

PB中用enter键模拟tab键的效果

PB中用enter键模拟tab键的效果,网上有一种方法:

在datawindow中扩展出pbm_dwnprocessenter事件,加入代码:

Send( Handle( This),256,9,Long(0,0))

Return 1

这个方法流传很广,也害了不少人,因为它只能在datawindow中使用,并且功能有限。

如果我们使用一个API调用:keybd_event就能很好的解决这个问题了。定义如下:

SUBROUTINE keybd_event(UInt bVk,UInt bScan,Long dwFlags,Long dwExtraInfo ) LIBRARY 'user32.dll'

bVk 指需要模拟的击键(9-TAB,13-ENTER,16-SHIFT,17-CTRL,91-Left Windows key,46-DEL等)

bScan 未使用

dwflags =0 ,按下 = 2 ,释放

dwExtraInfo 附加的值,没什么用

下面在登录窗口w_login中加入这个功能,在key事件中加入如下代码:

GraphicObject which_control

which_control = GetFocus()

CHOOSE CASE TypeOf(which_control)

                  CASE CommandButton!

                            which_control.TriggerEvent(Clicked!)

                  CASE SingleLineEdit!

                            IF Key = KeyEnter! THEN

                                     keybd_event ( 9, 0, 0 , 0 ) // 按下tab

                                     keybd_event ( 9, 0, 2, 0 ) // 释放tab

                            END IF

END CHOOSE

RETURN 1

文本框中自行跳转,遇到按钮则模拟点击。

zeuslsk 发表于 2010-3-16 14:45:26

学习了
先收藏再说
页: [1]
查看完整版本: PB中用enter键模拟tab键的效果

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com