怎么实现全屏视频软件的暂停?
单位在使用一个奇葩的监控播放软件,全屏播放后没有快捷键,不能实现播放/暂停的功能。用窗口消息工具看了,全屏时就只有显示的一个控件,控件消息是:。播放器在窗口模式下是有暂停按钮的。请教该怎么控制全屏播放时的暂停,能不能给控件SendMessage之类的?大家有什么思路都请指教一下吧。 你试试键盘上有什么快捷键可以暂停的,比如空格键或回车键,可以的话,就给窗口发送个按键就好了。 回复 2# netsmu
就是没有快捷键啊,向原来窗口模式下的暂停键发Click也没有效果。 试试
Send("{SPACE}") 回复 4# mbdnmt
不行,没有用。 用最土的办法吧,步骤是:移动鼠标到空间位置,然后发送单击命令就好了。
移动鼠标指针.
MouseMove ( X坐标, Y坐标 [, 速度] )
执行鼠标点击操作.
MouseClick ( "按钮" [, X坐标, Y坐标 [, 点击次数 [, 速度 ]]] ) 你手动是如何暂停的?
然后用键盘鼠标模拟手动的操作 回复 7# mbdnmt
全屏下没有手动暂停,窗口模式下才有暂停键。 回复 8# tank
那你就模拟键盘鼠标操作先回到窗口模式,再暂停 回复 9# mbdnmt
试过了,窗口模式和全屏切换操作要耗时半秒钟,还要闪几次,体验不好。 用F10做热键,实现暂停/播放,F11退出程序,没有界面
你没告诉我窗口标题,代码不然还简单多了,我这个只要按F10就向当前激活的窗口发送点击事件,不论是不是你那个播放器,有标题的话就可以只对你那个播放器生效的
HotKeySet("{F10}", "pause")
HotKeySet("{F11}", "exitau3")
While 1
Sleep(100)
WEnd
Func pause()
Local $var = WinList()
For $i = 1 To $var
; 只显示带有标题的可见窗口
If $var[$i] <> "" And IsVisible($var[$i]) And $var[$i] <> "开始" Then
ControlClick($var[$i], "", "")
Return
EndIf
Next
EndFunc ;==>pause
Func Exitau3()
Exit
EndFunc ;==>Exitau3
Func IsVisible($handle)
If BitAND(WinGetState($handle), 2) Then
Return 1
Else
Return 0
EndIf
EndFunc ;==>IsVisible
回复 11# wszhov
谢谢楼上写了这么多代码。我看你的程序就是向控件发点击,可能是我没说清楚,我需要的是在全屏视频播放时不退出全屏状态而实现暂停/继续播放功能。这款软件调用的是海康威视的dll。
页:
[1]