使用mediaplayer控件的屏保有关问题
使用mediaplayer控件的屏保问题
我自己做了个媒体播发器,使用的mediaplayer控件,在播放的时候过一段时间会屏保,老要时不时的去动一下鼠标防止屏保,希望mediaplayer控件在全屏播放时,能阻止屏保出现。在窗口模式下依然运行屏保。
我不会VB,只是想自己做个播放器看网络电视。
有看到这么解决的
"让系统认为已经处于屏保状态,它就不会再次激活屏保了:
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1 ,nil , 0); "
不知道是什么语言。
能高手能帮我搞定吗?用VB,谢谢了
最好说的稍微详细点,我是超级菜鸟。
------最佳解决方案--------------------
这是我的教材里面的 教学代码 送给你吧
'添加 Command1 Command2 Text1
Option Explicit
'*****************屏保控制时间与开关****************************************
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Long, ByVal fuWinIni As Long) As Long
Const SPI_SETSCREENSAVEACTIVE = 17
Const SPI_SETSCREENSAVETIMEOUT = 15
Const SPIF_SENDWININICHANGE = &H2
Private Const SPIF_UPDATEINIFILE = &H1
Private Sub Form_Load()
Command1.Caption = "禁止屏保"
Text1.Text = "60" '单位为秒,Windows屏保最少1分钟
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call EnableScreenSave
End Sub
Private Sub Command1_Click()
If Command1.Caption = "禁止屏保" Then
Call DisableScreenSave
Else
Call EnableScreenSave
End If
Command1.Caption = IIf(Command1.Caption = "禁止屏保", "运行屏保", "禁止屏保")
End Sub
Private Sub Command2_Click()
If Val(Text1.Text) <= 60 Then Text1.Text = "60"
Call SetScreenSaveTimeout(Val(Text1.Text))
End Sub
'*****************屏保控制时间与开关****************************************
Public Sub SetScreenSaveTimeout(ByVal BySecond As Long)
Call SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, BySecond, 0, SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE)
End Sub
Public Sub EnableScreenSave()
Call SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1, 0, SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE)
End Sub
Public Sub DisableScreenSave()
Call SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, 0, SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE)
End Sub
------其他解决方案--------------------
顶cbm666兄的,很经典.
是否也可以这样做,一般只要隔一会触发一下键盘按键,屏保就无法启动了
在timer里控制定时,用sendkeys随便发送个不常用的字母,n年前我做了个简单播放器,就是用sendkeys屏蔽屏保的
------其他解决方案--------------------
已解决,路过
------其他解决方案--------------------
谢谢 cbm666 的解答!!!
看了你的解答确实对我很有帮助。
不知道怎么给分?
还有调试好像不成功
说 Call SystemParametersInfo ......编译错误:子程序或函数未定义
另外可能我问问题没问好,表达上有问题,我再啰嗦一下我的问题。
我的小程序是使用的mediaplayer控件的媒体播放器,双击即能全屏,不过我电脑是有屏保的,假定是5分钟后启动屏保,即我全屏看了5分钟后电脑就屏保了,我就要去动一下,再双击播放器,全屏继续看网络电视。
我自己做了个媒体播发器,使用的mediaplayer控件,在播放的时候过一段时间会屏保,老要时不时的去动一下鼠标防止屏保,希望mediaplayer控件在全屏播放时,能阻止屏保出现。在窗口模式下依然运行屏保。
我不会VB,只是想自己做个播放器看网络电视。
有看到这么解决的
"让系统认为已经处于屏保状态,它就不会再次激活屏保了:
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1 ,nil , 0); "
不知道是什么语言。
能高手能帮我搞定吗?用VB,谢谢了
最好说的稍微详细点,我是超级菜鸟。
------最佳解决方案--------------------
这是我的教材里面的 教学代码 送给你吧
'添加 Command1 Command2 Text1
Option Explicit
'*****************屏保控制时间与开关****************************************
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Long, ByVal fuWinIni As Long) As Long
Const SPI_SETSCREENSAVEACTIVE = 17
Const SPI_SETSCREENSAVETIMEOUT = 15
Const SPIF_SENDWININICHANGE = &H2
Private Const SPIF_UPDATEINIFILE = &H1
Private Sub Form_Load()
Command1.Caption = "禁止屏保"
Text1.Text = "60" '单位为秒,Windows屏保最少1分钟
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call EnableScreenSave
End Sub
Private Sub Command1_Click()
If Command1.Caption = "禁止屏保" Then
Call DisableScreenSave
Else
Call EnableScreenSave
End If
Command1.Caption = IIf(Command1.Caption = "禁止屏保", "运行屏保", "禁止屏保")
End Sub
Private Sub Command2_Click()
If Val(Text1.Text) <= 60 Then Text1.Text = "60"
Call SetScreenSaveTimeout(Val(Text1.Text))
End Sub
'*****************屏保控制时间与开关****************************************
Public Sub SetScreenSaveTimeout(ByVal BySecond As Long)
Call SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, BySecond, 0, SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE)
End Sub
Public Sub EnableScreenSave()
Call SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1, 0, SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE)
End Sub
Public Sub DisableScreenSave()
Call SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, 0, SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE)
End Sub
------其他解决方案--------------------
顶cbm666兄的,很经典.
是否也可以这样做,一般只要隔一会触发一下键盘按键,屏保就无法启动了
在timer里控制定时,用sendkeys随便发送个不常用的字母,n年前我做了个简单播放器,就是用sendkeys屏蔽屏保的
------其他解决方案--------------------
已解决,路过
------其他解决方案--------------------
谢谢 cbm666 的解答!!!
看了你的解答确实对我很有帮助。
不知道怎么给分?
还有调试好像不成功
说 Call SystemParametersInfo ......编译错误:子程序或函数未定义
另外可能我问问题没问好,表达上有问题,我再啰嗦一下我的问题。
我的小程序是使用的mediaplayer控件的媒体播放器,双击即能全屏,不过我电脑是有屏保的,假定是5分钟后启动屏保,即我全屏看了5分钟后电脑就屏保了,我就要去动一下,再双击播放器,全屏继续看网络电视。