Gürol DEMİR
Bayrağımız
Gürol DEMİR
http://www.guroldemir.com
Nerede otorite varsa orada otoriteye direnen bir adam vardır.
Oscar Wilde
::: 6 Eylül Cumartesi ::::::29 Nisan 2005'den beri 31.753.709 ziyaretci, 1227 günde ortalama 25.879, şu an 439 kişi burada:::
Tmg Programını İndir  (64.518 adet indirildi), Tetkik, Görüntüleri, Referanslar, Yorumlar, SSS
Programlar | Depo | Hesaplamalar | Makaleler | Visual Basic | Sitene Ekle | Kaybettiklerim | Albüm | Mesaj Defterleri | Linkler
Api Nedir?
     Gürol Demir
     Vergi Denetmeni


     "İşletim sistemleri", aslında birer programdır. İşletim sistemleri genelde assembly programlama dili ile (veya assebmly komutları kullanan başka bir dil ile) yazılır. Bilgisayar açıldığında bir takım kontrol ve test işlemlerini yaptıktan sonra, harddiskin (durumuna göre floppy veya CD'de olabilir) ilk sektöründeki bilgiyi okur ve kontrolü işletim sistemine devreder. İşletim sistemi, bios kesmeleri ve makina dili komutlarını (assembly) kullanarak sistemi yönetir. Bu nedenle işletim sistemi direk olarak assembly komutları ile yazılmak durumundadır.

     İşletim sistemleri, kendi kontrolleri altında çalışacak diğer programlar için uygun ortamı hazırlarlar. Söz gelimi bir program diske yazma, diskten okuma, ekrana yazma, klavye tuş vuruşunu izleme gibi bir çok işlemleri kendisi yapmaz. Bu işleri işletim sisteminden talep eder. Bu istemin geçerli olması için, işletim sistemi ile programın aynı dili konuşuyor olması gerekir. Oysa işletim sistemi ile aynı dilden konuşmak oldukça zor ve zahmetli bir çalışma gerektirir. Bu karşılık bu talepleri konuşulan dile daha yakın bir şekilde ifade etmek için aracı bir programa ihtiyaç duyulmuştur. Programların işletim sisteminden olan taleplerini basitleştirmek ve daha anlaşılır kılmak için yapılan programlara ise "programlama dili" denilmektedir.

     Programlama dilleri sundukları bu kolaylığın bedeli olarak, biraz hızı düşürürler. Hatta, diyebiliriz ki; programlama dili ne kadar anlaşılabilir, konuşulan dile ne kadar yakınsa ve kodlanmaları ne kadar kolay iseler, o kadar yavaş çalışırlar. Bütün zamanların en anlaşılır ve en kolay dili olan basic serisi (basic, gwbasic, Qbasic, quick basic vs.) programlama dillerinin yavaşlığı bundan gelmektedir. Visual basic'in ise yeterince hızlı olduğunu belirtelim.

     Programlama dilleri hiç bir zaman, işletim sisteminin bütün desteğini sağlamazlar. Örneğin; harddisk seri numarasını öğrenme gibi. Bazen işletim sisteminin dahi sağlamadığı bir işi programınıza yaptırmak istersiniz. Örneğin seri veya paralel port yardımıyla neon ışıkları yakılması gibi projeler. Bu nedenlerle yaptığınız programla, programla dilinin içinden, ama programla dili komutları kullanmadan, direkt olarak işletim sistemiyle, hatta direkt olarak merkezi işlem birimi (cpu) ile veya başka bir aygıtla çalışmak isteyebilirsiniz.

     Windows serisi işletim sistemlerinde bu amaçla geliştirilmiş harici fonksiyonlar vardır. Bunlara Application Programming Interface ya da kısaca API denir.

     Windows'un sunduğu bu API'ler gruplandırılarak bir çok DLL ve EXE dosyasına konmuştur. VB'de kullanılan OCX dosyalarında da API'ler bulunabilir. Bu API'lerden birini kullandığınızda API'nin bulunduğu DLL sisteme daha önce yüklenmemişse önce bu DLL yüklenir ve API çalıştırılır.

     API'ler sadece Visual basic ile değil, windows altında çalışan her programlama dili içinden kullanılabilir. Siz de içinde değişik fonksiyonlar bulunan DLL dosyası yazabilirsiniz, ama bu API olmaz, API işletim sisteminin bir parçasıdır. API'de kullandığınız bir fonksiyonun, işletim sisteminin yeni versiyonlarında da yer alması sorumluluğu bulunmaktadır. API'lerin bir başka özelliği ise son derece hızlı olmalarıdır.

     Visual Basic ile birlikte gelen "API Text Viewer" programı vasıtasıyla hemen hemen bütün API'lerin listesini görebilirsiniz.

     VB'de API'ler, fonksiyon veya yordam olarak iki farklı şekilde tanımlanabilir.

     Declare Sub isim Lib "apidosyaadi" (parametreler)

     Yukardaki "Sub" yerine "Function" yazarsanız API'yi yordam olarak değil fonksiyon olarak çağırmak istyorsunuz demektir.

     Yine yukardaki örnekte, "Declare" kelimesinde önce eğer form içinde kullanılıyorsa "Private" sözcüğü mutlaka kullanılmaldır. "Private" sözcüğü bu fonksiyon ya da yordamın kullanıldığı form veya modül için özel olduğunu, "Public" veya "Global" sözcüğü ise programın her tarafında geçerli olduğunu bildirir. Salt "Declare" kullanılırsa bu "Public" anlamına gelir. API'nin tanımlanacağı yer formun veya modülün General-Declerations kısmıdır. API'yi bir formun decleration kısmında tanımlarsanız "Private" yazmak zorunda olduğunuzdan dolayı API'yi yalnız o formun içinden çağırabilirsiniz.

     API'yi doğru olarak tanımladığınız halde VB, ilgili dosyada böyle bir API bulunmadığını söylüyorsa veya API ile aynı isme sahip bir VB komutu var ise bu durumda Alias isimleri kullanmanız gerekir. Bazen'de API isminin sonuna A ekleyerek Alias ismi olarak vermeniz gerekir.

     Örnek olarak; kullanıcı ismini bulan bir API fonksiyonu kullanalım. Yeni bir projeye başlatın ve formunuzdaki, bütün kodlar aşağıdaki gibi olsun.
Option Explicit

Private Declare Function apiUserName Lib _
	"advapi32.dll" Alias "GetUserNameA" _
    (ByVal lpBuffer As String, _
    nSize As Long) As Long

Private Sub Form_Load()
    Dim Bufstr$, Uz&, Sen$
    Uz = 250
    Bufstr = Space$(Uz)
    If apiUserName(Bufstr, Uz) > 0 Then
        Sen = Left(Bufstr, Uz - 1)
        Sen = Trim(Sen)
    End If
    MsgBox ("Kayıtlı kullanıcı:" + Sen)
End Sub
Programı çalıştırdığınızda kullanıcı adını (yani kendi adınızı) görmeniz gerekir.
:: Bu sayfaya 4.958 kere bakıldı ::
  Ana Sayfa  |  Giriş Sayfası Yap  |  Favorilere Ekle  |  İletişim  |  Tavsiye Et  |  Yönetici Girişi  |  Hakkında