Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [Vb.Net] Comprendere Struttura Api
Forum - C# / VB.NET - [Vb.Net] Comprendere Struttura Api

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
salva94 (Normal User)
Rookie


Messaggi: 57
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 17:49
Mercoledì, 26/05/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

  1. Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  2.  
  3.     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
  4.  
  5.     Public Const WM_CLOSE = &H10
  6.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  7.         Dim winHwnd As Long
  8.         Dim RetVal As Long
  9.         winHwnd = FindWindow(vbNullString, "Nomecartella")
  10.  
  11.         If winHwnd <> 0 Then
  12.             RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)
  13.             If RetVal = 0 Then
  14.                 MsgBox("Errore nella chiusura.")
  15.             End If
  16.         Else
  17.             MsgBox("Errore non trovato il File.")
  18.         End If



Qualcuno riesce a spiegarmi riga per riga questo code? Vorrei capirci qualcosa in più :rofl:

PM Quote
Avatar
Federico_VbNet_Programmer (Normal User)
Expert


Messaggi: 222
Iscritto: 03/04/2010

Segnala al moderatore
Postato alle 19:26
Mercoledì, 26/05/2010
Allora:

Codice sorgente - presumibilmente VB.NET

  1. 'dichiara la funzione "findwindow" nella libreria user32 di windows
  2. Declare  Function FindWindow Lib  "user32" Alias "FindWindowA" (ByVal lpClassName As  String, ByVal  lpWindowName As String) As Long
  3.  
  4. 'Dichiara la funzione "postmessage" sempre della libreria user32 di windows
  5.     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
  6.  
  7. 'dichiara una costante pubblica di nome WM_CLOSE e le da il valore &H10
  8.     Public Const WM_CLOSE = &H10
  9. 'evento del click del pulsante
  10.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  11. 'dichiara due valori long e non le assegna nessun valore
  12.         Dim winHwnd As Long
  13.         Dim RetVal As Long
  14. 'al valore "winHwnd" dichiarato sopra le da il valore ottenuto dal findwindow dichiarato 'all'inizio
  15.         winHwnd = FindWindow(vbNullString, "Nomecartella")
  16.  
  17.         If winHwnd <> 0 Then
  18. 'se il valore è zero retval ha come valore il valore ottenuto da postmessage dichiarato 'all'inizio
  19.             RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)
  20.             If RetVal = 0 Then
  21. 'se il valore è zero dice che c'è stato un errore
  22.                 MsgBox("Errore nella chiusura.")
  23.             End If
  24.         Else
  25. 'se il valore è superiore a zero da l'errore di file non trovato
  26.             MsgBox("Errore non trovato il File.")
  27.         End If




Spero che questa miniguida riga per riga di sia d'aiuto XD:D


pierotofy fa merda
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5640
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:35
Mercoledì, 26/05/2010
Testo quotato

Postato originariamente da salva94:
... a cosa servono tutte quelle lettere e numeri accostati fra di loro ...



Ma di cosa parli ? :)


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Federico_VbNet_Programmer (Normal User)
Expert


Messaggi: 222
Iscritto: 03/04/2010

Segnala al moderatore
Postato alle 19:38
Mercoledì, 26/05/2010
queste lettere e numeri accostati fra loro servono per dare un valore al valore principale(non so come dirlo) XD


pierotofy fa merda
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5640
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:46
Mercoledì, 26/05/2010
Testo quotato

Postato originariamente da Federico_VbNet_Programmer:

... servono per dare un valore al valore principale ...



Il famoso "rimedio peggiore del male" ...

Da raccogliere e pubblicare ... :)


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Federico_VbNet_Programmer (Normal User)
Expert


Messaggi: 222
Iscritto: 03/04/2010

Segnala al moderatore
Postato alle 19:58
Mercoledì, 26/05/2010
Non capisco cosa vorresti sapere lol XD


pierotofy fa merda
PM Quote
Avatar
salva94 (Normal User)
Rookie


Messaggi: 57
Iscritto: 02/01/2010

Segnala al moderatore
Postato alle 15:24
Giovedì, 27/05/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?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5640
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:17
Giovedì, 27/05/2010
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 ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Federico_VbNet_Programmer (Normal User)
Expert


Messaggi: 222
Iscritto: 03/04/2010

Segnala al moderatore
Postato alle 16:18
Giovedì, 27/05/2010
&H10 è un valore che viene poi scritto in numeri,il valore è scritto nelle API:D


pierotofy fa merda
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo