tank 发表于 2013-11-10 23:44:54

怎么实现全屏视频软件的暂停?

单位在使用一个奇葩的监控播放软件,全屏播放后没有快捷键,不能实现播放/暂停的功能。用窗口消息工具看了,全屏时就只有显示的一个控件,控件消息是:。播放器在窗口模式下是有暂停按钮的。
请教该怎么控制全屏播放时的暂停,能不能给控件SendMessage之类的?大家有什么思路都请指教一下吧。

netsmu 发表于 2013-11-11 08:15:51

你试试键盘上有什么快捷键可以暂停的,比如空格键或回车键,可以的话,就给窗口发送个按键就好了。

tank 发表于 2013-11-11 09:41:30

回复 2# netsmu
就是没有快捷键啊,向原来窗口模式下的暂停键发Click也没有效果。

mbdnmt 发表于 2013-11-11 23:05:54

试试
   Send("{SPACE}")

tank 发表于 2013-11-12 14:03:55

回复 4# mbdnmt
不行,没有用。

netsmu 发表于 2013-11-12 17:21:07

用最土的办法吧,步骤是:移动鼠标到空间位置,然后发送单击命令就好了。
移动鼠标指针.
MouseMove ( X坐标, Y坐标 [, 速度] )
执行鼠标点击操作.
MouseClick ( "按钮" [, X坐标, Y坐标 [, 点击次数 [, 速度 ]]] )

mbdnmt 发表于 2013-11-12 22:07:33

你手动是如何暂停的?

然后用键盘鼠标模拟手动的操作

tank 发表于 2013-11-12 22:41:26

回复 7# mbdnmt
全屏下没有手动暂停,窗口模式下才有暂停键。

mbdnmt 发表于 2013-11-13 22:53:19

回复 8# tank


    那你就模拟键盘鼠标操作先回到窗口模式,再暂停

tank 发表于 2013-11-14 22:43:40

回复 9# mbdnmt
试过了,窗口模式和全屏切换操作要耗时半秒钟,还要闪几次,体验不好。

wszhov 发表于 2013-11-15 18:13:45

用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

tank 发表于 2013-11-15 22:33:12

回复 11# wszhov

谢谢楼上写了这么多代码。我看你的程序就是向控件发点击,可能是我没说清楚,我需要的是在全屏视频播放时不退出全屏状态而实现暂停/继续播放功能。这款软件调用的是海康威视的dll。
页: [1]
查看完整版本: 怎么实现全屏视频软件的暂停?