Windows API(Application Programming Interface) là cốt lõi của Microsoft, tập hợp các giao diện lập trình ứng dụng có sẵn hệ điều hành Microsoft Windows. API cung cấp hầu hết các tính năng thông dụng cho tất cả các chương trình chạy trên nền Windows. Hầu hết các hàm API thường được chứa trong file DLL trong thư mục hệ thống Windows (thường là:WindowsSystem).
Trang 1Visual Basic 6.0
WINDOWS API
Nhóm 4
Trang 3I Sơ lược về Windows API
Windows API(Application Programming Interface) là cốt lõi của Microsoft, tập hợp các giao diện lập trình ứng dụng có sẵn hệ điều hành Microsoft Windows
API cung cấp hầu hết các tính năng thông dụng cho tất cả các chương trình chạy trên nền Windows
Hầu hết các hàm API thường được chứa trong file
DLL trong thư mục hệ thống Windows (thường
là:/Windows/System)
Trang 4II Cách sử dụng hàm API
Các hàm API có 2 dạng: hàm (Function) có trị trả về
và thủ tục (Sub) không có trị trả về
Khai báo cho hàm có trị trả về như sau:
Declare Function < tên hàm API >
Lib < Tên thư viện >
[Alias < tên bí danh >] ([danh sách tham số])
as < kiểu dữ liệu >
Trang 5II Cách sử dụng hàm API
Khai báo cho các thủ tục:
Declare Sub < tên hàm API >
Lib < tên thư viện >
[Alias < tên bí danh >] ([danh sách tham số])
Trong đó:
< tên hàm API > là tên hàm trong các file thư viện DLL, hoặc tên bạn đặt ra (phải chỉ rõ tên chính
trong alias)
Trang 6II.Cách sử dụng hàm API
< tên thư viện > tên file thư viện DLL để Visual
Basic tìm các hàm API Tên thư viện này phải có đầy đủ tên cùng phần mở rộng, riêng đối với thư viện USER, KERNEL, và GDI32 thì không cần phải có phần mở rộng Tên được đặt trong cặp dấu
" "
[Alias <tên thực của hàm>] có thể có hay không
Bạn cần khai báo bí danh khi muốn gọi hàm API với một cái tên khác do chính bạn đặt
Trang 7II Cách sử dụng hàm API
Ví dụ: hàm API “AddFontResourceA” sau đây
được đặt lại bí danh là “AddFont” cho ngắn gọn mỗi lần gọi hàm
Declare Function AddFont Lib "gdi32" Alias
"AddFontResourceA" (ByVal lpFileName As String) As Long
Ví dụ: hàm API " lzCopy " sau đây được khai báo
đầy đủ đường dẫn file dll:
Declare Function lzCopy Lib "c:\windows\lzexpand.dll" (ByVal S As Integer, ByVal D As Integer) As Long
Trang 8II Cách sử dụng hàm API
Nếu không khai báo đường dẫn đầy đủ, VB sẽ tìm
thư viện DLL lần lượt trong:
• Thư mục chứa file thực thi exe
Trang 9Thư viện quản lý Windows Thư viện này chứa các hàm
xử lý menu, định giờ, truyền tin, tập tin và nhiều phần không được hiển thị khác của Windows
Trang 11III Một số hàm API – Tạm dừng chương trình
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Chức năng: tạm dừng chương trình
Tham số: dwMilliseconds kiểu Long, nhận giá trị
là mili giây
Demo
Trang 12III Một số hàm API – Thông tin loại ổ đĩa
Declare Function GetDriveType Lib "kernel32" Alias
"GetDriveTypeA" (ByVal nDrive As String) As Long
Chức năng: Kiểm tra loại ỗ đĩa.
Tham số: tên ổ đĩa cần kiểm tra Vd: c:\,d:\
Trang 13II Một số hàm API – Tráo đổi chuột
Declare Function SwapMouseButton Lib "user32.dll" (ByVal bSwap As Long) As Long
Chức năng: tráo đổi chuột trái và chuột phải
Tham số: bSwap kiểu Long
• 1: Đổi chuột trái thành phải và chuột phải thành trái
• 0: Mặt định
Thực hiện
Trang 14II Một số hàm API – Định vị Form_ontop
Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Long,
ByVal hWndInsertAfter As Long,
ByVal x As as Long,
ByVal y As Long,
ByVal cx As Long,
ByVal cy As Long,
ByVal wFlags As Long) As Long
Chức năng: Định vị ontop cho 1 cửa sổ form
Các tham số:
Trang 15III.Một số hàm API – Định vị Form_ontop
x,y,cx,cy: định vị form Thường là 0
wFlags: Tham số với các ý nghĩa quy định sẵn.
SWP_NOMOVE = &H2
SWP_NOSIZE = &H1
SWP_SHOWWINDOW = &H40 …
Trang 16III Một số hàm API – Form nhấp nháy
Private Declare Function FlashWindow Lib
"user32.dll" (ByVal hwnd As Long, ByVal bInvert As Long) As Long
bInvert kiểu Long giá trị 1 và 0 Tương ứng form
nháy và bình thường
Thực hiện và mở rộng.
Trang 17III Một số hàm API – Hiện hộp thoại “RUN”
Private Declare Function SHRunDialog Lib "shell32" Alias "#61" (ByVal hwnd As Long, ByVal
UnknownP1 As Long, ByVal UnknownP2 As Long, ByVal szTitle As String, ByVal szPrompt As String, ByVal uFlags As Long) As Long
Hiện hộp thoại “Run”
Các tham số(theo dõi demo)
Trang 18III.Một số hàm API – Dung lượng đĩa
Private Declare Function GetDiskFreeSpace Lib "kernel32.dll"
Alias " GetDiskFreeSpaceA " (ByVal lpRootPathName As
String, lpSectorsPerCluster As Long, lpBytesPerSector As
Long, lpNumberOfFreeClusters As Long,
lpTotalNumberOfClusters As Long) As Long
Chức năng: hiển thị dung lượng đĩa.
Tham số:
• lpRootPathName: partion cần kiểm tra Vd: c:\,g:\
• lpSectorsPerCluster, lpBytesPerSector, lpNumberOfFreeClusters, lpTotalNumberOfClusters là các giá trị nhận được kiểu Long.
Thực hiện.
Trang 19III Một số hàm API – Dung lượng đĩa
Private Declare Function GetUserName Lib
"advapi32.dll" Alias "GetUserNameA" (ByVal
lpBuffer As String, nSize As Long) As Long
Chức năng: lấy tên người dùng đăng nhập hệ
Trang 20Một số hàm API – Tải file
Private Declare Function URLDownloadToFile Lib "urlmon"
Alias " URLDownloadToFileA " (ByVal pCaller As Long,
ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Chức năng: Tải file từ mạng.
Tham số:
• pCaller: sử dụng “Microsoft® ActiveX® component” thì giá trị là 0
• szURL: địa chỉ tệp cần tải.
• szFileName: địa chỉ lưu tệp.
• dwReserved: 0
• lpfnCB: Địa chỉ của caller's IBindStatusCallback interface Thường mang giá trị 0.
Thực hiện.
Trang 21Một số hàm API - Tải file có hộp thoại
Private Declare Function DoFileDownload Lib
"shdocvw.dll" (ByVal lpszFile As String) As Long
Chức năng: tải file có hộp thoại như IE
Tham sô:
• lpszFile : String kieu unicode
Thực hiện.
Trang 22III Một số hàm API – Đổi nhãn ổ đĩa
Private Declare Function SetVolumeLabel Lib
"kernel32" Alias "SetVolumeLabelA" (ByVal
lpRootPathName As String, ByVal lpVolumeName
As String) As Long
Chức năng: đổi nhãn ổ đĩa.
lpRootPathName: vd: c:\, d:\, g:\
lpVolumeName: Nhãn mới.
Trang 23III.Một số hàm API – Phím tắt gọi form
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Chức năng: Tạo phím tắt cho ứng dụng
Tham số:
• wMsg (kiểu thông điệp)
• Hai tham số sau phụ thuộc vào tham số đầu.
Thực hiện.
Trang 24III.Một số hàm API – Ẩn hiện taskbar
Private Declare Function FindWindowEx Lib
"user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As
String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long)
As Long
Trang 25IV Một số hàm API khác
Private Declare Function SetSystemCursor Lib
"user32.dll" (ByVal hcur As _
Long, ByVal id As Long) As Long
Đặt lại biểu tượng con trỏ chuột
Private Declare Sub GetSystemTime Lib
"kernel32.dll" (lpSystemTime As SYSTEMTIME)
Lấy giờ hệ thống lpSystemTime.wHour;
lpSystemTime.wMinute; lpSystemTime.wSecond
Private Declare Function DoFileDownload Lib
"shdocvw.dll" (ByVal lpszFile As String) As Long
Trang 26IV Một số hàm API khác
Declare Function PlaySound Lib "winmm.dll" Alias
"PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Phát âm thanh wav
Declare Function midiOutOpen Lib "winmm.dll"
(lphMidiOut As Long, ByVal uDeviceID As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long
Phát âm thanh midi
Trang 27Xin cảm ơn!
www.themegallery.com