vladiii Posted June 3, 2007 Report Posted June 3, 2007 Despre functii API [visual basic] Ok kidz, a new lesson today ? Vom invata despre functii API in Visual Basic: ce sunt si ce sa faceti cu ele. Sa incepem, acestea fiind zise. Ce este o functie API ? O functie API (application programming interface) este defapt o interfata, un cod sursa in care putem folosi un dll din windows (dynamic link library) pentru a obtine anumite avantaje si pentru lucrul cu ferestrele, fisierele mai mult (imi cer scuze de exprimarea defectuoasa, dar pur si simplu nu am stiut ce sa zic). Cum se construieste o functie API? In primul rand o functie API se declara in modul (in visual basic): Project(Alt+p) - Add Module(Alt+m) si selectati un modul nou. Acum ca il avem adaugat sa dam un exemplu cum se declara o functie API:Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextW" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As LongSa explicam putin functia API. Primul lucru cu care am inceput este Public, acest parametru face ca functia sa poata fi folosita si in interiorul formului; in loc de Public se putea pune si Private, dar aceasta nu mai facea functia folosibila in form. Sa trecem mai departe. “Declare Function” declara functia, nu cred ca mai este nevoie de explicatii suplimentare, GetWindowText este numele functiei in Form si cu aceasta vom apela functia. Lib “user32” ne indica locul in care functia API se afla, in acest exemplu, in libraria user32 (user32.dll), in alte exemple de functii API este posibil ca functia sa fie declarata in libraria kernel32, sau altele, etc. Alias “GetWindowTextW” sugereaza numele cu, care se gaseste functia in libraria user32. Nu la toate functiile este necesar acest argument, dar aici este nevoie de el, deoarece GetWindowText <>GetWindowTextW. Acum, (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) reprezinta argumentele functiei si nu aveti cum sa le stiti pe dinafara sau sa le deduceti, pur si simplu cautati pe google sau pe msdn.com (cel mai bun site de functii API).Acum, ca am invatat cum se declara o functie API (sper ca ati invatat, recunosc, nu am explicat prea bine, dar pentru asta exista google si msdn ? ) sa invatam si cum se foloseste o astfel de functie.Dim hwnd As LongDim nume As Stringhwnd = FindWindow("Winamp v1.x", vbNullString)nume = GetWindowText(hwnd, melodie, 100)Mai intai functia FindWindow trebuie declarata in modul (http://msdn2.microsoft.com/en-us/library/ms633499.aspx), GetWindowText am declarat-o deja. Functia FindWindow gaseste handle’ul ferestrei Winampului (clasa ultimelor versiuni de Winamp este Winamp v1.x si handle’ul unei ferestre se poate afla doar stiind clasa acesteia. Ce este un handle? Handle’ul este un identificator al fiecarei ferestre, este o notiune abstracta. Fiecare buton, fereastra, textbox, orice element vizibil are un handle[HWND]. Handle’ul unei ferestre reprezinta un nume al acesteia, declarand o functie API nu o putem utiliza pe o fereasta fara a cunoaste hande’ul acelei ferestre) si il atribuie variabilei melodie. In continuare, GetWindowText extrage titlul ferestrei Winampului si o atribuie variabilei nume, care poate fi folosita in continuare dupa preferinte. Pentru a afla mai multe despre handle vizitati urmatorul link:http://msdn2.microsoft.com/en-us/library/aa159979(office.10).aspx Sa consideram acum un alt exemplu de functie API, ca doar din exemplu invatam cel mai bine, nu ? Sa consideram o functie care minimizeaza o fereasta. In modul, evident, declaram functia:Public Declare Function CloseWindow Lib "user32" Alias "CloseWindow" (ByVal hwnd As Long) As LongSa explicam putin si functia. HWND din interiorul parametrului reprezinta handle’ul ferestrei care va fi minimizata. Si acum sa consideram un simplu cod:Private Sub Form_Load() CloseWindow Me.hwndEnd SubAceasta minimizeaza fereasta curenta imediat la deschiderea acesteia (cand este vorba despre fereasta proprie, nu mai este nevoie sa ii gasim handle’ul, putem folosi pur si simplu: Me.hwnd). Cam atat pentru azi, sper ca am fost destul de explicit, pana la urma totul se invata muncind, nu doar dintr-un tutorial doua si un sfat util: cand este vorba de programare, nu ezitati sa dati un search pe google pentru a afla diferite informatii. Pentru a intelege mai bine functiile API, vizitati siteul: http://www.msdn.com si o sa aflati mai multe; ceea ce am facut eu in acest tutorial a fost decat sa va faceti o idee de baza despre cum functioneaza o astfel de functie. Vladiii 2007Pentru varianta in format .doc, download it from here:[url]http://rapidshare.com/files/35047101/functii_APi.doc.html[/url] Quote