Api Fonksiyonları programcı için büyük bir fırsattır.Kimilerine korkutucu gelir fakat doğru ve bilgili olarak kullanıldığında birçok işi çok az kod kullanarak yapabilir ve zamandan kazanabilirsiniz.
Visual Basic’de API kullanımı oldukça basite indirgenmiştir.Programın göçmesi,sistemin bozulması gibi söylentiler sadece yanlış kullanımlardan doğar.Her programda bu tip riskler zaten vardır.API programcılığı projenizi geliştirmede oldukça sağlam bir yoldur.
API’nin kullanıma hazır fonksiyonları vardır.Çoğu durumda birkaç basit kurala dikkat ederseniz kullanımı çok 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 güçlü eklentidir.Yüzlerce fonksiyon geniş bir alanda görev yapmak için beklemektedir.Fakat bir çok VB kullanıcısı hata olacak endişesiyle bu fonksiyonları kullanmazlar.
API nedir?
================
Hazır programlama arabirimidir.Windows için yazılan programlar yaygın windows görevlerini API çağırarak yaparlar.Örnek:pencere,menü yaratmak,görüntü ,klavye,fare girdisi vb…Api fonksiyonları DLL uzantılı Dynamic Link Libraries dosyalarından çağırılır.
API Programlama araçları.
===========================
Biraz bilgi ve Api referansları,birkaç basit kural ile Win32 Api fonksiyonlarını VB projenize yerleştirebilirsiniz.İhtiyaçlarınız.
Win32 SDK (Software Development Kit)–Yazılım geliştirme araçları–
SDK bilgisine VB Professional ve Enterprise içinden ulaşabilirsiniz.Ayrıca
[Linkleri görebilmek için üye olun veya giriş yapın.] adresinden de…
API izleme apleti
===========================
Bu aplet VB ile birlikte gelir.Api fonksiyonlarını çağırmadan önce modüllere nelerin deklere edilmesi gerektiğini listeler.
Çalıştırmak için VB menüde Ad-on kısmında Api viewer’ı seçin.
Size istedğiğiniz Api fonksiyonu için gereken tüm Declare ifadelerini verir.
API fonksiyonlarını Declare etmek
=================================
Api içinden bir fonksiyonu çağırmak için VB’nin yapacağınız dış çağrıyı algılaması için bir Declare ifadesi yazmalısınız.Declare ifadesi bazı kısımlardan oluşur ve bildiğimiz Sub (procedure) deklarasyonu gibidir.Sözdizimi şöyledir.
Sub prosedürleri için:
[Public | Private] Declare Sub ad Lib “kütüphane_adı” [Alias “alias_adı”] [([argüman listesi])]
Function prosedürü için:
[Public | Private] Declare Function ad Lib “kütüphane_adı” [Alias “alias_adı”] [([argüman listesi])] [As veri_türü]
Bu ifadelerde kullanılan bileşenleri inceleyelim.
Public yada Private
Bu VB’in standart etkin tanımlayıcısıdır.Declare ifadeleri modüllerin declaration kısmında yazılmalıdır.(Prosedür içinde yapılmaz!)Public deyimi yazılan ifadenin tüm program içinde geçerli olduğunu,Private ise yapılan modül içinde geçerli olduğunu bildirir.
Declare Sub yada Declare Function
Bu prosedürün bir değer döndürüp döndürmeyeceğini gösterir.Dikkat: Bazı API fonksiyonlarının VB’de kullanılmayan illegal adları vardır.Bu yüzden 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 Tüm API deklarasyonları için kullanılması önerilir.
Lib “kütüphane_adı”
Bu çağırılacak fonksiyonu içinde tutan DLL dosyasının adıdır.Kütüphane adını verirken çift tırnak (”kütüphane_adı”) arasına almayı unutmayın.
Alias “ikinci_ad”
Çağırılacak fonksiyonun ikinci adıdır.Buda çift tırnak arsında yazılmalıdır.
(argüman listesi)
Standart VB argüman listesidir.Prosedür için hangi parametrelerin gerekli olduğunu,parametrelerin veri türünü ve parametrelerin ByVal olarak mı yoksa ByRef olarak mı geçeceğini gösterir.
——————————————————————————–
Kısa bir örnek:
===========================
Bu örnek BitBlt Api’sinin kullanımını anlatmaktadır.SRCCOPY Api viewer’ın Constant bölümünde bulunmaktadır.Ayrıca sadece Copy değil,And ve invert işlemi de yapabilirsiniz.
Kod Çizelgesi 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 içindeki resim parçacı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 içinde aşağıdaki kırmızı renkte olan değişiklikleri yapıp deneyin.
Kod Çizelgesi 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 bölüm
Private Sub Command1_Click()
Dim i As Integer
’picture1 içindeki resim parçacı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 bölüm
Next i
End Sub
Private Sub Form_Load()
Form1.AutoRedraw = True
Form1.ScaleMode = vbPixels
End Sub
|KADİR SELEN -HAKAN ŞEN |