Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
girovagando per la rete ho trovato anche l' API FindWindow solo che l' handle trovato con il tuo codice non coincide con quello trovato da questa funzione, come mai? Ho passato tutti e due gli handle delle funzioni a destroywindow ma mi dice divisione per zero come mai? grazie
Codice sorgente - presumibilmente VB.NET
PublicClass Form
PrivateFunction trovahandle()AsBoolean
Dim hwnd AsLong= FindWindow(Nothing, "prova")
DestroyWindow(hwnd)
EndFunction
PrivateDeclareFunction FindWindow Lib "user32.dll"Alias"FindWindowA"(ByVal lpClassName As _
String, ByVal lpWindowName AsString)AsLong
DeclareFunction DestroyWindow Lib "user32.dll"(ByVal hWnd As IntPtr)AsBoolean
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click
trovahandle()
EndSub
mi dice hwnd (un numero lunghissimo) OverflowException non è stata gestita
La signature del metodo è sbagliata. Hai usato Long al posto di Integer: fai attenzione da dove copi il codice, poiché quello era per vb6. Hai anche usato FindWindow in modo sbagliato, poiché se passi Nothing al primo parametro non otterrai buoni risultati. Documentati sulla funzione qui:
http://pinvoke.net/default.aspx/user32/FindWindow.html E prova anche altre varianti più semplici, come ad esempio FindWindowByCaption.
con il codice riportato nella guida e con i tuoi suggerimenti ottengo l' handle, poi lo passo alla funzione Destroywindow ma non succede nulla , la cartella rimane aperta. dove sbaglio?In che senso il nothing non mi da buoni risultati? Non so cosa metterci, sui vari esempi c' è sempre nothing o al massimo vbnullstring ( vb6), spiegami se puoi!