51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4241|回复: 3
打印 上一主题 下一主题

[Robot] 如何通过脚本最小化所有窗口?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-9-22 09:45:05 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
如题。
我试了Inputkeys "{Win}D",但是没有用。

thanks
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

4#
发表于 2004-9-22 20:34:37 | 只看该作者
不错,
给其他人介绍一下,模拟键盘用api函数Keybd_event,模拟鼠标按键用mouse_event函数

Keybd_event函数能触发一个按键事件,也就是说可以产生一个WM_KEYDOWN或WM_KEYUP消息。当然也可以用产生这两个消息来模拟按键,但是没有直接用这个函数方便。Keybd_event共有四个参数,第一个为按键的虚拟键值,如回车键为vk_return, tab键为vk_tab。第二个参数为扫描码,一般不用设置,用0代替就行第三个参数为选项标志,如果为keydown则置0即可,如果为keyup则设成“KEYEVENTF_KEYUP”,第四个参数一般也是置0即可。用如下代码即可实现模拟按下键,其中的XX表示XX键的虚拟键值,在这里也就是各键对应的键码,如’A’=65

mouse_event最好配合SetCursorPos(x,y)函数一起使用,与Keybd_event类似,mouse_event有五个参数,第一个为选项标志,为MOUSEEVENTF_LEFTDOWN时表示左键按下为MOUSEEVENTF_LEFTUP表示左键松开,向系统发送相应消息。第二三个参数分别表示x,y 相对位置,一般可设为0,0,第四五个参数并不重要,一般也可设为0,0
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2004-9-22 15:17:56 | 只看该作者
谢谢pcl2004_27的回复,简单写了一个调 api 的脚本:

' Reference to the user32 api dll
Declare Sub keybd_event Lib "user32" ( _
         ByVal bVk As Integer, _
         ByVal bScan As Integer, _
         ByVal dwFlags As Long, _
         ByVal dwExtraInfo As Long)

Sub Main
    ' Press "Win + D" key combination can toggle the state of all windows on desktop
    Dim Result As Integer
    Dim s As String
   
    Const KEYEVENTF_KEYUP = &H2
    Const VK_LWIN = &H5B

    ' 68 is the character code for the letter 'D'
    Call keybd_event(VK_LWIN, 0, 0, 0)
    Call keybd_event(68, 0, 0, 0)
    Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)

End Sub
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2004-9-22 11:50:48 | 只看该作者
解决方法:
robot自身的window函数
sendmessage  api函数
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-27 02:29 , Processed in 0.068523 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表