51Testing软件测试论坛

标题: 如何通过脚本最小化所有窗口? [打印本页]

作者: xalee    时间: 2004-9-22 09:45
标题: 如何通过脚本最小化所有窗口?
如题。
我试了Inputkeys "{Win}D",但是没有用。

thanks
作者: pcl2004_27    时间: 2004-9-22 11:50
解决方法:
robot自身的window函数
sendmessage  api函数
作者: xalee    时间: 2004-9-22 15:17
谢谢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
作者: pcl2004_27    时间: 2004-9-22 20:34
不错,
给其他人介绍一下,模拟键盘用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




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2