ERRO HWND

CRISLUFT 15/12/2013 21:01:42
#432108

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
Const WM_SYSCOMMAND = &H112&
Const SC_SCREENSAVE = &HF140&
Dim NumErro As Integer
Dim result As Long
result = SendMessage(Me.hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)

O que há de errado ?

[Ô]Erro hWnd não declarado. [Ô]
OCELOT 15/12/2013 21:29:58
#432109
Onde você colocou este código? hWnd só existe nos Forms se não me engano, pois ele é o handle da janela, que é a forma como o Windows identifica as janelas.
CRISLUFT 15/12/2013 22:17:12
#432110
Variavel Global :
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
Const WM_SYSCOMMAND = &H112&
Const SC_SCREENSAVE = &HF140&
Dim NumErro As Integer

Dentro Form Load :
Dim result As Long
result = SendMessage(Me.hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0&)
CRISLUFT 15/12/2013 22:19:21
#432111
Opa falei errado, não é erro de declaração é isso que da : Error [ô]hWnd[ô] is not a member of [ô]SistemaLan.Form1[ô].
MARCELO.TREZE 16/12/2013 08:29:42
#432112
Vamos lá colega você criou um tópico sobre como chamar a proteção de tela, teve uma resposta porém não funcionou, agora você criou outro tópico com a resposta do primeiro tópico e ainda tá tendo dificuldade, mas vou te ajudar.

A partir da versão 2005 do vb, passamos a chamar de VB.NET, sei que usa a versão 2008, então vai a solução este código que você está utilizando não vai funcionar ele é pra vb6.

Encerre os dois tópicos, vá até o forum VB.NET e pergunte como chamar a proteção de tela do windows, ou procure na net como chamar a proteção de tela do windows usando vb.NET.



OCELOT 16/12/2013 08:32:34
#432113
Se você estiver usando o VBA do Office então não tem como pegar o hWnd dos forms, o único hWnd que você vai ter acesso é o da janela principal do programa através do Application.Hwnd
MARCELO.TREZE 16/12/2013 09:55:30
#432120
Sabendo agora que você terá muita dificuldade em achar algum código para vb.net eu consegui este, e gostaria que você o testa-se e dissesse se esta funcionando, pois assim posso posta-lo nas dicas

veja

Public Class Main

Private Declare Function GetDesktopWindow Lib [Ô]user32[Ô] () As Integer
Private Declare Function SendMessage Lib [Ô]user32[Ô] Alias [Ô]SendMessageA[Ô] _
(ByVal hWnd As Integer, ByVal wMsg As Integer, _
ByVal wParam As Integer, ByRef lParam As Integer) As Integer

Const WM_SYSCOMMAND As Integer = &H112
Const SC_SCREENSAVE As Integer = &HF140

Private Shared Sub StartScreenSaver()
Dim hWnd As Integer
hWnd = GetDesktopWindow()
SendMessage(hWnd, WM_SYSCOMMAND, SC_SCREENSAVE, 0)
End Sub

Public Shared Sub Main()
Try
StartScreenSaver()
Catch ex As Exception
MsgBox([Ô]Error: [Ô] & ex.Message)
End Try
End Sub

End Class


se este código funcionar favor não esquecer de informar, e posteriormente poste suas duvidas no forum .NET.

CRISLUFT 16/12/2013 13:50:58
#432138
Olá , desculpe por ter aberto mais tópicos. Este código não funcionou ou eu coloquei em um lugar errado. Gostaria que quando o Form_Load abrisse a proteção de tela. Coloquei tudo nas declarações e coloquei Call StartScreenSaver. Eu estou chamando certo ou como devo fazer ?
Faça seu login para responder