• Merhaba Ziyaretçi,
    Microsoft 365 Uygulamaları ile ilgili yeni haberler, dikkat çekici konular, ilgi ile takip edeceğiniz yazılar için.

    Abone Olun
  • ESTE - Microsoft Office Eğitimleri

    Yeni yıl Microsoft Office Eğitim planlarınız için bütçenizi oluşturmadan önce ESTE eğitim kalitesi ile tanışın. 🙌
    Kullanıcıların ihtiyacı olan yazılı materyal, dosya ve video kaynağı desteğimiz ile tüm ofis çalışanlarının iş süreçlerini rahatlatacak eğitimler planlayın. 🎯
    Microsoft Office eğitimlerimiz hakkında detaylı bilgi için bize ulaşın.

    👉 Microsoft Office Eğitim Talebi

Makale Windows API (Application Programming Interface) Hakkında

Murat OSMA

Yönetici
Site Yöneticisi
Katılım
25 May 2018
Mesajlar
1,506
En iyi yanıt
13
Puanları
113
Konum
İstanbul
Web sitesi
excelarsivi.com
Ad Soyad
Murat OSMA
Office Vers.
Office 365 TR+EN
Windows API (Application Programming Interface) 32 ve 64 bit Windows işletim sistemleri için özellikle C ve C++ gibi programlama dillerinde kullanılan uygulama geliştirme ara yüzüdür. Windows API, geliştirilen uygulamaların işletim sistemi ile iletişimini sağlar. Farklı bir ifade ile, geliştirilen uygulamalar ile Windows API kullanıldığında, Windows işletim sistemi içinde .dll dosyalarda yerleşik olarak bulunan fonksiyon, veri ve yapıların uygulama içinde yani kodlarda kullanılmasını sağlar.

Sistem fonksiyonları olarak adlandırılan Windows API fonksiyonları Windows işletim sistemi ile birlikte yüklenir ve Windows sistem klasörleri altındaki .dll uzantılı dosyalarda yer alırlar. Kodlarda Declare edilerek kullanılırlar.

Windows API ile kullanılabilecek fonksiyonlar temel olarak 4 gruba ayrılır:

Temel Hizmetler
Kernel32.dll
dosyasında yer alan bu fonksiyonlar dosya sistemleri ve aygıtlar gibi Windows işletim sisteminin temel kaynaklarına erişimi sağlar.
Advapi.dll dosyasında yer alan bu fonksiyonlar Windows Registry, sistemin açılıp kapanması, Windows hizmetlerinin oluşturulması, başlatılması ve durdurulması gibi işlemleri gerçekleştirir.

Grafik Hizmetleri
gdi32.dll
dosyasında yer alan bu fonksiyonlar grafik çizim işlemlerini gerçekleştirir.

Kullanıcı Hizmetleri
User32.dll
dosyasında yer alan bu fonksiyonlar ekran, temel kontrol elemanları, fare ve klavye ile ilgili işlemleri gerçekleştirir.
Comdlg32.dll dosyasında yer alan bu fonksiyonlar dosya açma ve kapama ile renk ve font seçimi gibi işlemlerde kullanılan standart diyalog kutu işlemlerini gerçekleştirir.
Comctl32.dll dosyasında yer alan bu fonksiyonlar StatusBar, ProgressBar, ToolBar ve MultiPage gibi elemanların uygulamalar tarafından kullanılmasını sağlar.
Shell32.dll dosyasında yer alan bu fonksiyonlar işletim sistemi Shell olanaklarının kullanılmasını sağlar.

Ağ Hizmetleri
İşletim sistemindeki ağ ile ilgili işlemleri gerçekleştirir.
Windows API dosyalarının temelini kernel32.dll, user32.dll ve gdi32.dll dosyaları oluşturur.
Windows API kullanarak siyah ekranlı DOS ortamında geliştirdiğimiz uygulamalar yerine Windows ortamına uygun grafik özelliklerine sahip uygulamalar geliştirebiliriz.

Ayrıca, 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 olduğ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.
Binlerce fonksiyon geniş bir alanda görev yapmak için beklemektedir. Fakat bir çok VB kullanıcısı hata olacak endişesiyle bu fonksiyonları kullanmazlar.

64 Bit API Listesine buradan ulaşabilirsiniz.

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öz dizimi şö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. Bu da ç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.

Örnek bir API Deklerasyon yazalım.. Sleep API Fonksiyonunu kullanalım.
64 Bit işletim sistemlerinden sonra API Fonksiyonumuzu bildirirken kodların her iki sistem için de hata vermeden çalışması için, hem Win64 hem de diğer, yani 32 bit işletim sistemi için mevcut API fonksiyonlarını yazmalıyız. Kodlarda ilaveten VBA7 ifadesi yer almakta, Office 2010 ile beraber VBA'nın 7.0 versiyonu kullanılmakta. Buradan VBA versiyonlarına bakabilirsiniz.
PHP:
#If VBA7 And Win64 Then
    Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#Else
    Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If
 
Son düzenleme:
Üst Alt