Originariamente inviato da MItaly
Invia alla finestra un messaggio
WM_CLOSE.
Stavo appunto provando con SendMessage ma il codice che riporto mi da errore
Ho un codice, che non allego, che mostra gli handle aperti
Nel programma di test inserisco nella textbox l' handle da chiudere e quando eseguo mi riporta l'errore sotto il codice:
codice:
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
Public Const WM_CLOSE = &H10
Public Const WM_SYSCOMMAND As Integer = &H112
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim hWnd1 As Long = CLng(txtHWND.Text)
If (hWnd1 <> 0) Then
SendMessage(hWnd1, WM_CLOSE, 0, 0)
End If
End Sub
Errore generato
L'assistente al debug gestito 'PInvokeStackImbalance' ha rilevato un problema in 'C:\Users\helpd_000\Documents\Visual Studio 2012\Projects\EnumWindows\WindowsApplication1\bin\ Debug\WindowsApplication1.vshost.exe'.
Informazioni aggiuntive: Una chiamata alla funzione PInvoke 'WindowsApplication1!WindowsApplication1.Form1::Se ndMessage' ha sbilanciato lo stack. Questo problema può verificarsi quando la firma PInvoke gestita non corrisponde alla firma di destinazione non gestita. Verificare che la convenzione di chiamata e i parametri della firma PInvoke corrispondano alla firma di destinazione non gestita.