[VB] Hoe schermbeveiliging uitzetten

Pagina: 1
Acties:

  • ixi
  • Registratie: December 2001
  • Laatst online: 04-08 21:43
Hey mensen,

Topic is misschien beetje onduidelijk. Het is de bedoeling dat ik een lopende schermbeveiliging uitzet met een programma, en dus niet dat ik permanent geen schermbeveiling meer krijg.

De reden dat ik dit wil doen is omdat ik over een paar dagen een grap ga uithalen met wat mensen die hier The Ring komen kijken, en dan nadat de film klaar is valt na een tijdje het scherm uit (vanwege blankscreen-saver), en dan wil ik 'ineens' weer beeld hebben met een stukje film (wie de film gezien heeft weet wel welk stukje ik bedoel >:) ). Om daarna met ATDT een oude modem een nummer te laten bellen etcetc :D

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23-08 10:39

Janoz

Moderator Devschuur®

!litemod

Ik denk dat het veel makkelijker is om een progje te schrijven die het scherm zwart maakt en na een dat stukje film laat zien. Desnoods maak je een filmpje waarin eerst de boel op zwart vliegt...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Hi,
Turning off the screen saver is not as strait forward as mentionned previously.

To stop the screen saver,first you should detect if the screen saver is running
then kill the Screen saver window

so the function and declaration will be be modified as the following :

'Declarations to add:
'********************
Private Const WM_CLOSE = &H10&
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function SystemParametersInfo Lib "user32" _
Alias "SystemParametersInfoA" _
(ByVal uiAction As Long, _
ByVal uiParam As Long, _
pvParam As Any, _
ByVal fWInIni As Long) As Boolean

Private Const SPI_GETSCREENSAVERRUNNING As Long = &H72

'rewritten Function
'******************
Sub ScreenSaver(bScreenSaver As Boolean, _
Optional lHwnd As Long, _
Optional sFormCaption As String)

Dim lState As Long
If lHwnd = 0 Then
lHwnd = FindWindowA(vbNullString, sFormCaption)
End If
If bScreenSaver Then
'activate screen saver
Call SendMessage(lHwnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)
Else
'check if screen saver running
Dim bRunning As Boolean
SystemParametersInfo SPI_GETSCREENSAVERRUNNING, 0, bRunning, False
if bRunning then
'kill the screen saver window
Call SendMessage(GetForegroundWindow(), WM_Close, 0&, 0&)
end if
End If

End Sub