Sekilas windows API

Posted by Kamarudin • 3 minute read • Comments

Windows API (Application Programming Interface) merupakan sekumpulan fungsi eksternal yang terdapat dalam file-file librarynya windows atau program lain yang dapat digunakan untuk meningkatkan kemampuan program kita.

Kenapa menggunakan Windows API ?

Ya alasan paling sederhananya sih untuk mengatasi keterbatasan fungsi-fungsi internal (built-in) visual basic. Bayangkan kita diminta BOZZZ untuk membuat sebuah aplikasi yang mempunyai kemampuan sebagai berikut :

  1. Melakukan Restart
  2. Melakukan Shutdown
  3. Selalu diatas windows yg lain (On Top Most)
  4. Akses Registry Windows
  5. Menontaktifkan program-program tertentu, seperti Windows Taks Manager, Regedit, Ms Config de el el.
  6. Mendeteksi koneksi internet
  7. Mendapatkan direktori system (c:\windows\system32 atau c:\windows\system)
  8. Menyembunyikan mouse cursor, tombol Start, TaskBar
  9. Dan lain-lain, kayax mau buat virus aja :grin:

Saya yakin kalo kita blank sama sekali tentang Windows API pasti cuma bisa gigit jari dan bisa-bisa terancam bakalan dipecat :grin:.

Apakah Windows API harus DIHAPAL?

Saya merekomendasikan jawabannya IYA kalo pada ingin stress :grin:, coba kita lihat cuplikan fungsi-fungsi Windows API berikut :

Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long

Selain deklarasi fungsi-fungsi, Windows API juga biasanya membutuhkan deklarasi konstanta. Misal untuk fungsi ExitWindowsEx, membutuhkan deklarasi konstanta berikut :

Private Const EWX_LOGOFF = 0
Private Const EWX_SHUTDOWN = 1
Private Const EWX_REBOOT = 2
Private Const EWX_FORCE = 4

Fungsi SetWindowPos membutuhkan deklarsi konstanta berikut :

Private Const HWND_TOPMOST = -1
Private Const HWND_NOTOPMOST = -2
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOACTIVATE = &H10
Private Const SWP_SHOWWINDOW = &H40

Iiihhhh serem bukan? :cry: penampakan fungsi diatas baru 4 loh, coba bayangkan fungsi-fungsi Windows API itu jumlahnya ada ribuan, tapi jangan khawatir ada tip dan triknya kok untuk mudah mengingat fungsi-fungsi Windows API yaitu cukup mengingat nama fungsinya, Misal.

  1. Untuk Restart dan Shutdown (ExitWindowsEx)
  2. Mendapatkan direktori system (GetSystemDirectory)
  3. Menyembunyikan mouse cursor (ShowCursor)

Trus bagaimana melengkapi deklarasi fungsi-fungsi Windows API berikut konstantanya ?

Saya biasanya menggunakan salah satu dari 2 tools berikut:

  1. API Text Viewer (bawaan vb), tool ini saya gunakan jika saya ingat nama fungsi plus konstantanya, kalo enggak ingat ya saya biasanya pake tool yang kedua :grin:
  2. API-GUIDE sayang situs aslinya sudah tidak aktif lagi. Keuntungan menggunakan API-GUIDE, kita cukup mengingat nama fungsi APInya otomatis contoh penggunaan akan ditampilkan mudah bukan? Jadi tidak ada alasan untuk tidak mempelajari Windows API

Menggunakan API Text Viewer

Dari IDE Visual Basic, klik menu Add-Ins -> Add-In Manager, terus aktifkan item VB6 API Viewer

Jika proses diatas berhasil, akan ada tambahan sub menu API Viewer di menu Add-Ins, kita tinggal klik menu tersebut untuk menampilkan tool API Text Viewer

Deklarasi fungsi-fungsi Windows API berikut konstantanya tersimpan di file WIN32API.txt, jadi kita terlebih dulu harus mengaktifkan file tersebut, dengan cara klik menu File -> Load Text File, trus tinggal pilih file WIN32API.txt

Untuk mendapatkan deklarsi lengkap, kita tinggal mengetikan nama fungsi APInya, misal untuk contoh diatas saya mengetikan fungsi ExitWindowsEx kemudian klik tombol Add dan otomatis deklarsi lengkap fungsi ExitWindowsEx akan ditampilkan di list.

Kemudian untuk mendapatkan konstanta dari fungsi ExitWindowsEx, kita harus mengganti nilai API Type menjadi Constants, dan tinggal mengetikkan nama konstantanya misal EWX_

Jika sudah selesai tekan tombol Copy untuk mengcopy fungsi API berikut konstantanya dan tinggal pastekan ke editor code visual basic.

Menggunakan API-GUIDE

API-GUIDE bisa didownload di sini, setelah download kemudian install dan jalankan API-GUIDEnya, kita tinggal mengetikan nama fungsi API misal ExitWindowsEx, mengklik tab Example(s), diakhiri dengan mengklik tombol Copy, mudah bukan ? tinggal dipastekan ke editor code visual basic.

Selamat mencoba :blush:

Comments