Esiste un comando per disattivare il monitor (come l'opzione di windows "spegni monitor dopo n minuti"), possibilmente senza l'utilizzo delle API?
Ciao
Grazie![]()
Esiste un comando per disattivare il monitor (come l'opzione di windows "spegni monitor dopo n minuti"), possibilmente senza l'utilizzo delle API?
Ciao
Grazie![]()
Senza api nn ho trovato niente...
Cmq anche se il codice utilizza le api è molto semplice
prima definisci questa api e le 2 costanti
e po richiami la funzione concodice:Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Const WM_SYSCOMMAND = &H112& Private Const SC_MONITORPOWER = &HF170&
codice:SendMessage Me.hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, 1&
Purtroppo non puoi farlo senza ricorrere alle API... VB non può fare tutto :-)
Se sei agli inizi, ti incoraggio ad usare le API. Sono un'ottimo strumento, non sono troppo complicate da capire e ti
aiutano spesso in situazioni come questa in cui VB non può fare nulla.
Se ti ho convinto, dai un'occhiata a questo codice:
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Const WM_SYSCOMMAND As Long = &H112
'Const SC_MONITORPOWER = &HF170 ' per Win 98/ME
Const SC_MONITORPOWER = &HF170& ' per Win2k/XP
Private Sub Command1_Click()
Const TURN_OFF = 2&
Const STAND_BY = 1& ' mette in standby
Const TURN_ON = -1&
SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal TURN_OFF ' spegne
Sleep 2000 ' attende 2 secondi
SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal TURN_ON ' accende
End Sub