Avatar billede mouse-the-mighty Nybegynder
02. september 2002 - 12:05 Der er 12 kommentarer og
1 løsning

slukke skærmen

jeg skal bruge et program der kan slukke for skærmen...
helst på samme måde som når den går i power save mode
Avatar billede ocp Nybegynder
02. september 2002 - 12:09 #1
To switch a monitor on/off or to standby, use the following code. Note, this may
not work on some NT machines.

Private Const SC_MONITORPOWER = &HF170&
Private Const SC_SCREENSAVE = &HF140&
Private Const WM_SYSCOMMAND = &H112
Private Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

'Purpose    :  Switches the monitor on or off
'Inputs      :  bPowerOn            If True, turns the monitor on
'                                  else turns to monitor off
'              [lHwnd]            VB: The form handle OR
'              [sFormCaption]      VBA: The caption of the form calling the
'                                  routine, can be Me.Caption or Application.Caption
'Outputs    :
'Author      :  Andrew Baker
'Date        :  05/11/2000 13:07
'Notes      :
'Revisions  :

Sub MonitorPower(bPowerOn 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 bPowerOn Then
        lState = -1
    Else
        lState = 2
    End If
    Call SendMessage(lHwnd, WM_SYSCOMMAND, SC_MONITORPOWER, lState)
End Sub


'Purpose    :  Changes the monitor standby mode
'Inputs      :  bStandBy            If True, sets the monitor to Stand by
'                                  else turns the Stand by off
'              [lHwnd]            VB: The form handle OR
'              [sFormCaption]      VBA: The caption of the form calling the
'                                  routine, can be Me.Caption or Application.Caption
'Outputs    :
'Author      :  Andrew Baker
'Date        :  05/11/2000 13:07
'Notes      :
'Revisions  :

Sub MonitorStandby(bStandBy 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 bStandBy Then
        lState = 1
    Else
        lState = -1
    End If
    Call SendMessage(lHwnd, WM_SYSCOMMAND, SC_MONITORPOWER, lState)
End Sub
Avatar billede mouse-the-mighty Nybegynder
02. september 2002 - 12:33 #2
hmmmm kan ikke rigtig få det til at virke, men nu er det jo også en 2K jeg bruger den på.
Avatar billede ocp Nybegynder
02. september 2002 - 12:45 #3
Jeg kan godt nok heller ikke selv få det til at virke - det virker nok kun på windows 9x.
Sorry.
Kan man ikke i stedet starte en screensaver?
Avatar billede mouse-the-mighty Nybegynder
02. september 2002 - 12:53 #4
tjooo....... hved du hvordan det gøres??
Avatar billede ocp Nybegynder
02. september 2002 - 13:25 #5
Således?

    Dim strPath As String * 255
    Dim strExec As String
    Call GetSystemDirectory(strPath, 255)
    strExec = Left$(strPath, InStr(strPath, Chr(0)) - 1) & "\logon.scr /s"
    Shell strExec
Avatar billede ocp Nybegynder
02. september 2002 - 13:26 #6
DET virker i hvert fald i Windows2000 - jeg har afprøvet det denne gang.
Avatar billede mouse-the-mighty Nybegynder
03. september 2002 - 08:22 #7
uuumm ja......

hvad er den GetSystemDirectory som du kalder???
Avatar billede ocp Nybegynder
03. september 2002 - 09:10 #8
Det er da helt utroligt med mig. Undskyld:

Declare Function GetSystemDirectory Lib "kernel32.dll" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Avatar billede ocp Nybegynder
03. september 2002 - 09:11 #9
Det var såmænd bare for at sikre at screensaveren altid kan findes lige gyldig hvilken mappe windows er installeret i.
Avatar billede mouse-the-mighty Nybegynder
03. september 2002 - 09:29 #10
tjooo.....
jeg går ud fra at det er en private declare function du mente ^_^

det virker da så du har da helt klart gjort dig fortjent til dine point.
Men lige inden da........ det er fordi mig og en anden coder sidder og laver grimling programmer til hinanden og jeg er ved at løbe tør for ide'er så hvis du havde nogle sååå.............
Avatar billede ocp Nybegynder
03. september 2002 - 09:31 #11
Hvis du "hooker" op på keyboard-eventen kan du lave alle mulige grimme ting. F.eks. sørge for at bestemte bogstaver ikke kan bruges lige gyldigt hvilket program man er i.
Avatar billede ocp Nybegynder
03. september 2002 - 09:32 #12
Avatar billede mouse-the-mighty Nybegynder
03. september 2002 - 09:52 #13
oki du skal ivertfald ha tak ^_^
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester