Apagar Monitor en Vb6. Tengo un codigo de prog. pero no funciona en WinXp

Bernie
16 de Enero del 2003
Holap, he conseguido inf. para poder desconectar el monitor del pc con un prog.en Vb6. Pero NO funciona con el SO Windows Xp. Alquien sabe cual es el codigo correcto ?. Aqui os muestro el codigo que he conseguido. Esta en Vb6.

Option Explicit
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
Const WM_SYSCOMMAND = &H112
Const SC_MONITORPOWER = &HF170

Private Sub Form_Load()
'Turn Monitor off
SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal 0&
MsgBox "Press enter to turn the monitor back on. You shouldn't be seeing this, just hit enter."
'Turn Monitor on
SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal -1&
End Sub

Agradezco la atencion prestada, y mas aun si alguien me ayuda con el codigo. Saludos.

bernies
16 de Enero del 2003
Hola...esta es la solución :

Option Explicit
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
Const WM_SYSCOMMAND = &H112
Const SC_MONITORPOWER = &HF170&

Private Sub Form_Load()
'Turn Monitor off
SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal 0&
MsgBox "Press enter to turn the monitor back on. You shouldn't be seeing this, just hit enter."
'Turn Monitor on
SendMessage Me.hwnd, WM_SYSCOMMAND, SC_MONITORPOWER, ByVal -1&
End Sub


Solo tenias que añadir un & en la línea:

Const SC_MONITORPOWER = &HF170&

Saludos, Bernie.