salva94 (Normal User)
Rookie
Messaggi: 57
Iscritto: 02/01/2010
|
Ragazzi poco fa dato che un user non sapeva come chiudere una cartella ho pensato di dargli un code Api trovato su un sito . Però vorrei capire come si utilizzano e a cosa servono tutte quelle lettere e numeri accostati fra di loro :
Codice sorgente - presumibilmente VB.NET |
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long Public Const WM_CLOSE = &H10 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim winHwnd As Long Dim RetVal As Long winHwnd = FindWindow(vbNullString, "Nomecartella") If winHwnd <> 0 Then RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&) If RetVal = 0 Then MsgBox("Errore nella chiusura.") End If Else MsgBox("Errore non trovato il File.") End If
|
Qualcuno riesce a spiegarmi riga per riga questo code? Vorrei capirci qualcosa in più
|
|
Federico_VbNet_Programmer (Normal User)
Expert
Messaggi: 222
Iscritto: 03/04/2010
|
Allora:
Codice sorgente - presumibilmente VB.NET |
'dichiara la funzione "findwindow" nella libreria user32 di windows Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 'Dichiara la funzione "postmessage" sempre della libreria user32 di windows Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long 'dichiara una costante pubblica di nome WM_CLOSE e le da il valore &H10 Public Const WM_CLOSE = &H10 'evento del click del pulsante Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'dichiara due valori long e non le assegna nessun valore Dim winHwnd As Long Dim RetVal As Long 'al valore "winHwnd" dichiarato sopra le da il valore ottenuto dal findwindow dichiarato 'all'inizio winHwnd = FindWindow(vbNullString, "Nomecartella") If winHwnd <> 0 Then 'se il valore è zero retval ha come valore il valore ottenuto da postmessage dichiarato 'all'inizio RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&) If RetVal = 0 Then 'se il valore è zero dice che c'è stato un errore MsgBox("Errore nella chiusura.") End If Else 'se il valore è superiore a zero da l'errore di file non trovato MsgBox("Errore non trovato il File.") End If
|
Spero che questa miniguida riga per riga di sia d'aiuto XD
|
|
()
Newbie
Messaggi:
Iscritto:
|
Postato originariamente da salva94:
... a cosa servono tutte quelle lettere e numeri accostati fra di loro ... |
Ma di cosa parli ? |
|
Federico_VbNet_Programmer (Normal User)
Expert
Messaggi: 222
Iscritto: 03/04/2010
|
queste lettere e numeri accostati fra loro servono per dare un valore al valore principale(non so come dirlo) XD
|
|
()
Newbie
Messaggi:
Iscritto:
|
Postato originariamente da Federico_VbNet_Programmer:
... servono per dare un valore al valore principale ... |
Il famoso "rimedio peggiore del male" ...
Da raccogliere e pubblicare ... |
|
Federico_VbNet_Programmer (Normal User)
Expert
Messaggi: 222
Iscritto: 03/04/2010
|
Non capisco cosa vorresti sapere lol XD
|
|
salva94 (Normal User)
Rookie
Messaggi: 57
Iscritto: 02/01/2010
|
Fede ti ringrazio ma fino a quel punto ci arrivo pure io... vorrei capire perchè invece usano espressioni tipo Public Const WM_CLOSE = &H10 , perchè proprio il valore &H10?
|
|
()
Newbie
Messaggi:
Iscritto:
|
Sono valori costanti utilizzati dal sistema operativo Windows. Non è importante quanto vale, è importante che sia lo stesso valore usato da Windows per quella costante.
Praticamente, non c'è nulla da capire ...
|
|
Federico_VbNet_Programmer (Normal User)
Expert
Messaggi: 222
Iscritto: 03/04/2010
|
&H10 è un valore che viene poi scritto in numeri,il valore è scritto nelle API
|
|