intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Lập Trình Windows API

Chia sẻ: Hoa Mitu | Ngày: | Loại File: PDF | Số trang:16

484
lượt xem
143
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

I. Giới Thiệu Về Windows API API là thành phần mạnh nhất trong các tiện ích của Visual Basic (VB),với hàng trăm hàm sẵn có để thực hiện nhiều chức năng khác nhau.Nhưng, thường thì nhiều lập trình viên VB đã không tận dụng những chức năng mạnh mẽ này vì họ đã nghe nói về sự phức tạp của nó, cũng như những lỗi “general protection faults” hay nhiều vấn đề khác.

Chủ đề:
Lưu

Nội dung Text: Lập Trình Windows API

  1. Company Trường ĐH Quang Trung LOGO Khoa: KT & CN Lớp: K2.101 Lập Trình Windows API Môn: Visual Basic 6.0 GV: Đỗ Minh Đức Nhóm 11: 1. Nguyễn Đình Dự 2. Hoàng Minh Thử Windows API-Nhóm 11,Lớp 1 K2.101
  2. I. Giới Thiệu Về Windows API API là thành phần mạnh nhất trong các tiện ích của Visual Basic (VB),với hàng trăm hàm sẵn có để thực hiện nhiều chức năng khác nhau.Nhưng, thường thì nhiều lập trình viên VB đã không tận dụng những chức năng mạnh mẽ này vì họ đã nghe nói về sự phức tạp của nó, cũng như những lỗi “general protection faults” hay nhiều vấn đề khác. Windows API-Nhóm 11,Lớp 2 K2.101
  3. II. Windows API 1. Windows API Là Gì ? Là Gì API là viết tắt của Application Programming Interface (giao diện lập trình ứng dụng). Do API là cốt lõi của Windows vì vậy ta thường gọi là Windows API (WinAPI) hay Win32 API. WinAPI là một giao tiếp phần mềm được dùng bởi các ứng dụng khác nhau. Cũng giống như bàn phím là thiết bị giao tiếp giữa người dùng và máy tính, một API là một giao tiếp phần mềm, chẳng hạn như giữa chương trình và hệ điều hành. Bộ API của từng hệ điều hành không giống nhau, làm cho các hệ điều hành thường không tương thích với nhau. Windows API-Nhóm 11,Lớp 3 K2.101
  4. 2. Windows API Làm Được Những Gì ? Nói một cách cơ bản, WinAPI quản lý mọi vấn đề làm ra Windows. Như từ việc mở hoặc đóng một cửa sổ đến việc truy xuất đĩa, cấp phát bộ nhớ, hiển thị trên màn hình… Tuy nhiên, nó đồng thời cũng 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 trên nền Windows. Ví dụ, các hộp thoại thông dụng (Open, Save As,…), các thiết lập hệ điều hành, các sự kiện,…Các ứng dụng trên nền Windows dùng WinAPI hầu như trong mọi tác vụ. Thậm chí nếu bạn không dùng WinAPI một cách rõ ràng khi lập trình thì trong ngôn ngữ lập trình cũng sẽ gọi các WinAPI trong chương trình được tạo ra để quản lý nhiều tác vụ khác nhau. Windows API-Nhóm 11,Lớp 4 K2.101
  5. 3. Windows API được chứa ở đâu ? Hầu hết các hàm WinAPI được chứa trong các file *.DLL (Dynamic Link Library – thư viện liên kết động) chứa trong thư mục hệ thống của Windows (..\Windows\System\) hay (..\Windows\System32\). Các file DLL cho phép các chương trình bên ngoài dùng các hàm của chúng. Các hàm API được tổ chức trong các DLL chính sau:  KERNEL32.DLL: Là DLL chính, đảm nhiệm KERNEL32.DLL quản lý bộ nhớ, thưc hiện chức năng đa nhiệm và những hàm ảnh hưởng trực tiếp đến hoạt động của Windows. Windows API-Nhóm 11,Lớp 5 K2.101
  6. USER32.DLL: Thư viện quản lý Windows. Thư viện USER32.DLL 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. GDI32.DLL: Giao diện thiết bị đồ hoạ (Graphics GDI32.DLL Device Interface). Thư viện này cung cấp các hàm vẽ trên màn hình, cũng như kiểm tra phần biểu mẫu nào cần vẽ lại. SHELL32.DLL: Thư viện quản lý hệ vỏ Windows , SHELL32.DLL chứa các file icon của hệ thống. WINNM.DLL: Cung cấp các hàm multimedia để xử lý WINNM.DLL âm thanh, nhạc, video thờI gian thực, lấy mẫu, v.v… Nó là DLL 32 bit. (Thư viện 16 bit tên là MMSYSTEM) Windows API-Nhóm 11,Lớp 6 K2.101
  7. III. Các thành phần của Windows API Khi nói đến Windows API, người ta thường hay nghĩ ngay đến các hàm. Nhưng thực ra ra, các hàm cũng chỉ là một thành phần của Windows API. Sau đây là danh sách các đối tượng tạo nên Windows API:  Các hàm (function): Như đã đề cập, các hàm chính là hạt nhân của Window API. Chúng là những mã lệnh thực sự để hoàn thành các công việc khác nhau. Chúng được chứa trong các DLL và có thể được truy xuất một cách dễ dàng bởi các chương trình trên windows. Windows API-Nhóm 11,Lớp 7 K2.101
  8.  Cấu trúc (structure): là sự kết hợp của nhiều biến riêng biệt, thường được dùng để nhóm các thông tin có liên quan với nhau thành một nhóm. Nhiều hàm API đòi hỏi một cấu trúc phải được truyền cho chúng để có thể vận chuyển một lượng lớn thông tin mà không cần phải dùng quá nhiều đối số trong hàm. Mặc dù những cấu trúc này được dùng trong các hàm API, chương trình của bạn vẩn có thể tự định nghĩa chúng (đối với Visual Basic hầu như phải tự định nghĩa lại cấu trúc). Windows API-Nhóm 11,Lớp 8 K2.101
  9.  Các hằng được đặt tên (named constant): các hằng được đặt tên là một cách thức thuận lợi để tham chiếu đến các mã số khó nhớ (ví dụ: mã quét của bàn phím chẳng hạn). Đôi khi các hằng được dùng như là các cờ. Cũng như với cấu trúc, các hằng phải được định nghĩa rõ ràng trong chương trình của bạn (Code Visual Basic). Windows API-Nhóm 11,Lớp 9 K2.101
  10.  Các hàm gọi lại (callback function): về khái niệm thì các hàm callback ngược với các hàm API. Một hàm callback được định nghĩa hoàn toàn trong chương trình của bạn. Sau đó hàm này sẽ được một hàm API khác gọi khi nó thực thi một tác vụ. Các hàm callback cung cấp một cách thức để chương trình của bạn có thể can thiệp trực tiếp vào tác vụ đó. Nó tương tự như con trỏ (pointer function) trong C/C++. Trong Visual Basic các thủ tục xử lý sự kiện của bạn là một hình dung dễ nhất về callback function. Windows API-Nhóm 11,Lớp 10 K2.101
  11. IV. Khai Báo Hàm Trong Windows API Trước khi sử dụng một hàm API trong VB thì bạn phải khai báo trước. Việc khai báo nhằm mục đích để VB biết cách gọi các hàm này ở đâu, các đối số là gì và kiểu dữ liệ trả về nếu có. Cấu trúc khai báo này cũng giống như thủ tục khai báo bình thường trong VB nhưng có nhiều thành phần hơn. Cụ thể cú pháp như sau:  Khai báo cho thủ tục Sub không có giá trị trả về: [ Public | Private ] Declare Sub name Lib “lib_name” [Alias “alias_name”] [([arglist])] Windows API-Nhóm 11,Lớp 11 K2.101
  12.  Khai báo cho thủ tục Function có giá trị trả về: [ Public | Private ] Declare Function name Lib “lib_name” [Alias “alias_name”] [([arglist])] [As type] Trong đó:  Public | Private : Từ khóa chỉ định phạm vi sử dụng của hàm.  name: Tên của hàm API cần gọi.  lib_name: Tên thư viện DLL chứa hàm.( có dấu “” )  alias_name: Tên bí danh của hàm trong file DLL ( có dấu “” )  arglist: Danh sách các đối số.  As type: kiểu dữ liệu trả về của Function. Windows API-Nhóm 11,Lớp 12 K2.101
  13. Danh sách các đối số (Arglist): Xác định có bao nhiêu đối số và kiểu tương ứng của mỗi đối số được truyền cho hàm.Cú pháp như sau: [{ ByVal | ByRef }] name As data_type, … Trong đó:  ByVal | ByRef: từ khóa kiểu truyền.  name: Tên đối số.  data_type: kiểu dữ liệu trả về của đối. - Kiểu ByVal dùng cho String. - Kiểu ByRef dùng cho cấu trúc(structure) ,mảng(array) - Các biến kiểu số có thể truyền bằng ByVal hay ByRef tùy theo cách dùng của bạn. Windows API-Nhóm 11,Lớp 13 K2.101
  14.  Ví dụ: Tạo cửa sổ nhấp nháy. 1. Private Declare Function FlashWindow Lib "user32" (ByVal hWnd As Long, ByVal bInvert As Long) As Long 2. Private Sub Timer1_Timer() 3. Dim luu As Long 4. luu = FlashWindow(Form1.hWnd, True) 5. End Sub  Ví dụ: Hạ một cửa sổ đang mở xuống thanh Start Windows API-Nhóm 11,Lớp 14 K2.101
  15. 1. Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 2. Private Declare Function CloseWindow Lib "user32" (ByVal hwnd As Long) As Long 3. Private Sub Command1_Click() 4. Dim cuaso As Long 5. aHwnd = FindWindow(vbNullString, "My Computer") 6. If aHwnd 0 Then 7. CloseWindow cuaso 8. MsgBox “Da ha xuong" 9. Else 10. MsgBox “Cua so nay khong co !" 11. End If 12.End Sub Windows API-Nhóm 11,Lớp 15 K2.101
  16. Company LOGO Thanks You ! Tài liệu tham khảo: Internet. Windows API-Nhóm 11,Lớp 16 K2.101
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
5=>2