Api Fonksiyonları programcı icin buyuk bir fırsattır.Kimilerine korkutucu gelir fakat doğru ve bilgili olarak kullanıldığında bircok işi cok az kod kullanarak yapabilir ve zamandan kazanabilirsiniz.
Visual Basic�de API kullanımı oldukca basite indirgenmiştir.Programın gocmesi,sistemin bozulması gibi soylentiler sadece yanlış kullanımlardan doğar.Her programda bu tip riskler zaten vardır.API programcılığı projenizi geliştirmede oldukca sağlam bir yoldur.
API�nin kullanıma hazır fonksiyonları vardır.Coğu durumda birkac basit kurala dikkat ederseniz kullanımı cok kolaydır.Yazdığınız programların kurulu alduğu bilgisayarlarda zaten mevcuttur.Size sadece ufak kodlar yazmak kalıyor.
Win32 Application Programming Interface (API) Visual Basic�in sahip olduğu en guclu eklentidir.Yuzlerce fonksiyon geniş bir alanda gorev yapmak icin beklemektedir.Fakat bir cok VB kullanıcısı hata olacak endişesiyle bu fonksiyonları kullanmazlar.
API nedir?
================
Hazır programlama arabirimidir.Windows icin yazılan programlar yaygın windows gorevlerini API cağırarak yaparlar.Ornek

API Programlama aracları.
===========================
Biraz bilgi ve Api referansları,birkac basit kural ile Win32 Api fonksiyonlarını VB projenize yerleştirebilirsiniz.İhtiyaclarınız.
Win32 SDK (Software Development Kit)�Yazılım geliştirme aracları�
SDK bilgisine VB Professional ve Enterprise icinden ulaşabilirsiniz.Ayrıca http://www.microsoft.com/msdn http://www.microsoft.com/msdn adresinden de�
API izleme apleti
===========================
Bu aplet VB ile birlikte gelir.Api fonksiyonlarını cağırmadan once modullere nelerin deklere edilmesi gerektiğini listeler.
Calıştırmak icin VB menude Ad-on kısmında Api viewer�ı secin.
Size istedğiğiniz Api fonksiyonu icin gereken tum Declare ifadelerini verir.
API fonksiyonlarını Declare etmek
=================================
Api icinden bir fonksiyonu cağırmak icin VB�nin yapacağınız dış cağrıyı algılaması icin bir Declare ifadesi yazmalısınız.Declare ifadesi bazı kısımlardan oluşur ve bildiğimiz Sub (procedure) deklarasyonu gibidir.Sozdizimi şoyledir.
Sub prosedurleri icin:
[Public | Private] Declare Sub ad Lib �kutuphane_adı� [Alias �alias_adı�] [([arguman listesi])]
Function proseduru icin:
[Public | Private] Declare Function ad Lib �kutuphane_adı� [Alias �alias_adı�] [([arguman listesi])] [As veri_turu]
Bu ifadelerde kullanılan bileşenleri inceleyelim.
Public yada Private
Bu VB�in standart etkin tanımlayıcısıdır.Declare ifadeleri modullerin declaration kısmında yazılmalıdır.(Prosedur icinde yapılmaz!)Public deyimi yazılan ifadenin tum program icinde gecerli olduğunu,Private ise yapılan modul icinde gecerli olduğunu bildirir.
Declare Sub yada Declare Function
Bu prosedurun bir değer dondurup dondurmeyeceğini gosterir.Dikkat: Bazı API fonksiyonlarının VB�de kullanılmayan illegal adları vardır.Bu yuzden ikinci bir ad da (alias) standart olarak verilmiştir.Bazı nedenlerden dolayı bir ad ve bir ikinci adın kullanılması gerekir.Ancak, hem ad ve hem de ikinci adın Tum API deklarasyonları icin kullanılması onerilir.
Lib �kutuphane_adı�
Bu cağırılacak fonksiyonu icinde tutan DLL dosyasının adıdır.Kutuphane adını verirken cift tırnak (�kutuphane_adı�) arasına almayı unutmayın.
Alias �ikinci_ad�
Cağırılacak fonksiyonun ikinci adıdır.Buda cift tırnak arsında yazılmalıdır.
(arguman listesi)
Standart VB arguman listesidir.Prosedur icin hangi parametrelerin gerekli olduğunu,parametrelerin veri turunu ve parametrelerin ByVal olarak mı yoksa ByRef olarak mı gececeğini gosterir.
���������������������������
Kısa bir ornek:
===========================
Bu ornek BitBlt Api�sinin kullanımını anlatmaktadır.SRCCOPY Api viewer�ın Constant bolumunde bulunmaktadır.Ayrıca sadece Copy değil,And ve invert işlemi de yapabilirsiniz.
Kod Cizelgesi Kod Dili: php
Option Explicit
Private Declare Function BitBlt Lib �gdi32″ (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Const SRCCOPY = &HCC0020
Private Sub Command1_Click()
Dim i As Integer
�picture1 icindeki resim parcacıkları 32×32 ebatlarındadır.
Form1.Cls �formu temizle
For i = 0 To 6
BitBlt Form1.hDC, i * 32, 0, 32, 32, Picture1.hDC, 0, i * 32, SRCCOPY
Next i
End Sub
Private Sub Form_Load()
Form1.AutoRedraw = True
Form1.ScaleMode = vbPixels
End Sub
Mesela aynı program icinde aşağıdaki kırmızı renkte olan değişiklikleri yapıp deneyin.
Kod Cizelgesi Kod Dili: php
Option Explicit
Private Declare Function BitBlt Lib �gdi32″ (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Const SRCINVERT = &H660046 �değişen bolum
Private Sub Command1_Click()
Dim i As Integer
�picture1 icindeki resim parcacıkları 32×32 ebatlarındadır.
Form1.Cls �formu temizle
For i = 0 To 6
BitBlt Form1.hDC, i * 32, 0, 32, 32, Picture1.hDC, 0, i * 32, SRCINVERT �değişen bolum
Next i
End Sub
Private Sub Form_Load()
Form1.AutoRedraw = True
Form1.ScaleMode = vbPixels
End Sub
__________________