Api trên hệ điều hành windows

Thư viện API, lập trình API
1
CÁC THƯ VIỆN API, LẬP
TRÌNH SỬ DỤNG API
Giáo viên bộ môn: Phạm Văn Hưởng
Sinh viên thực hiện:
1.Đỗ Khắc Tâm
2.Nguyễn Xuân Minh
3.Lê Văn Sơn
4.Nguyễn Thị Xuân
Thư viện API, lập trình API2
CÁC THƯ VIỆN API, LẬP TRÌNH
SỬ DỤNG API
Tổng quan về API
1
Các thư viện chính trong API
2
Lập trình sử dụng API
3
Thư viện API, lập trình API3
Tổng quan về API
1. API là gì?
2. Chức năng của Windows API.
3. Windows API nằm ở đâu?
4. Các thành phần của windows API
5. Cách dùng các hàm API
6. Các thư viện API phổ biến
Thư viện API, lập trình API4
Tổng quan về API
1. API là gì?
API là viết tắt của Application Programming Interface[giao

diện lập trình ứng dụng].
Nó là một giao tiếp phầm mềm, dùng bởi nhiều ứng dụng
khác nhau.
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.
Thư viện API, lập trình API5
Tổng quan về API
2. Chức năng của Windows API

Nói một cách cơ bản, Windows API quản lý mọi vấn đề
làm ra Windows, bao gồm cả những vấn đề như truy xuất
đĩa, cấp phát bộ nhớ, hiển thị trên màn hình…

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 trên nền Windows ví dụ: các
hộp thoại thông dụng [Open, Save As, Choose Font, …],
các thiết lập hệ điều hành, các sự kiện, …
Thư viện API, lập trình API6
Tổng quan về API
3. Windows API nằm ở đâu?

Hầu hết các hàm Windows API được chứa trong các
file *.DLL [Dynamic Link Library ] chứa trong thư
mục hệ thống của Windows [thường là
C:\Windows\System\].

Các file DLL cho phép các chương trình bên ngoài
sử dụng các hàm của chúng.
Thư viện API, lập trình API7
Tổng quan về API

4. Các thành phần của windows API

Các hàm [function]: Các hàm chính là hạt nhân của Window API. Là các đoạn mã lệnh để
hoàn thành các công việc khác nhau, chúng được chứa trong các file .dll

Cấu trúc [structure]: Là sự kết hợp của nhiều biến riêng biệt, nhóm các thông tin liên quan
đến nhau thành một nhóm.

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]. 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ác hàm gọi lại [callback function]: Được định nghĩa trong chương trình và được API gọi
lại khi thực thi một tác vụ. Nó tương tự như con trỏ hàm [pointer function] trong C/C++.
Thư viện API, lập trình API8
Tổng quan về API
5. Cách dùng các hàm API
Cách khai báo

Khai báo cho hàm có trị trả về
Declare Function < tên hàm API > Lib < Tên thư viện > [Alias < tên bí danh >] [[danh
sách các đối số]] as < kiểu dữliệu >

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 các
đối số]]

Ví dụ
Hàm API "AddfontResource " 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 AddFontResource Lib "gdi32" Alias "AddFont" [ByVal lpFileName As
String] As Long
Thư viện API, lập trình API9
Tổng quan về API
6. Các thư viện API phổ biến

Advapi32.dll: Thư viện dịch vụ cao cấp API hỗ trợ rất nhiều
các API bao gồm bảo mật và các lời gọi Registry.

Comdlg32.dll: Các thư viện API Dialog phổ biến

Gdi32.dll: Các hàm giao tiếp thiết bị đồ họa

Kernel32.dll: Các hàm của HĐH

Shell32.dll: Các hàm hệ vỏ Windows

User32.dll: Các hàm giao diện người dùng

Ntdll.dll: Thư viện đa phương tiện của Windows
Thư viện API, lập trình API10
Bốn thư viện chính của Window API
1. USER32.dll: Chứa các hàm liên quan đến việc
quản lý cửa sổ, cho người dùng nhập dữ liệu.
2. GDI32.dll: Cung cấp các chức năng đồ hoạ cần
thiết.
3. Ntdll.dll: Cung cấp các hàm nội bộ.
4. KERNEL32.dll: Xử lý quản lý bộ nhớ, xử lý đa
nhiệm của các chương trình đang chạy.
Thư viện API, lập trình API11

USER32.DLL
1. Định nghĩa
- User32.dll là một trong các thư
viện liên kết động quan trọng của hệ
điều hành Window.
- User32.dll chứa các hàm cơ bản liên
quan đến việc quản lý cửa sổ, cho
người dùng nhập dữ liệu…
- User32.dll là một trong những thành
phần rất quan trọng đối với hoạt động
của Windows. Nếu tập tin này bị xóa
hoặc loại bỏ, hệ thống sẽ không làm
việc.
Thư viện API, lập trình API12
USER32.DLL
2. Chức năng của User32.dll
- User32.dll thực hiện các thành phần người dùng Windows tạo
ra và quản lý toàn bộ các yếu tố tiêu chuẩn của giao diện người
dùng Windows, chẳng hạn như Desktop, cửa sổ và menu.
- Nó cho phép các chương trình thực hiện một giao diện đồ hoạ
người dùng[GUI] phù hợp với Windows.

Thư viện API, lập trình API13
USER32.DLL
3. Hoạt động
- Chương trình gọi các hàm từ Windows USER để thực hiện các hoạt động như:
+ tạo và quản lý các cửa sổ
+ cửa sổ nhận tin nhắn [chủ yếu là người sử dụng đầu vào như các sự kiện chuột
và bàn phím, cũng như các thông báo từ hệ điều hành]
+ hiển thị văn bản trong một cửa sổ

+ hiển thị hộp tin nhắn
- Một số hàm trong user32.dll được gọi theo các hàm GDI chứa trong GDI32.dll để vẽ
các thành phần khác nhau của giao diện người dùng.
- Một số chương trình cũng sẽ gọi hàm GDI trực tiếp để thực hiện hoạt động vẽ cấp
thấp hơn trong một cửa sổ trước đó tạo ra thông qua các hàm của user32.dll.
Thư viện API, lập trình API14
USER32.DLL
4. Một số hàm tiêu biểu có trong User32.dll
- CreateWindow
- MoveWindow
- BringWindowToTop
- CloseWindow
- DestroyWindow
- GetGUIThreadInfo
- EnableWindow
Thư viện API, lập trình API15
USER32.DLL
4. Một số hàm tiêu biểu có trong User32.dll
4.1 CreateWindow
Cú pháp:
HWND WINAPI CreateWindow [
_In_opt_ LPCTSTR lpClassName,
_In_opt_ LPCTSTR lpWindowName,
_In_ DWORD dwStyle,
_In_ int x,
_In_ int y,
_In_ int nWidth,
_In_ int nHeight,
_In_opt_ HWND hWndParent,
_In_opt_ HMenu hMenu,

_In_opt_ HINSTANCE hInstance,
_In_opt_ LPVOID lpParam
];
Thư viện API, lập trình API16
USER32.DLL
4. Một số hàm tiêu biểu có trong User32.dll
4.1 CreateWindow
Các tham số:

lpClassName: Nếu lpClassName là một chuỗi, nó xác định tên lớp cửa sổ

lpWindowName: tên cửa sổ

dwStyle: kiểu cửa sổ được tạo ra

x: vị trí nằm ngang ban đầu của cửa sổ

y: vị trí thẳng đứng ban đầu của cửa sổ

nWidth: chiều rộng của cửa sổ

nHeight: chiều cao của cửa sổ

hWndParent: handle của cửa sổ

hMenu: xác định menu được sử dụng với cửa sổ

hInstance: một handle thể hiện các mô-đun được liên kết với cửa sổ

lpParam: một con trỏ trỏ tới một giá trị được truyền vào cửa sổ thông qua cấu trúc CREATESTRUCT.

Thư viện API, lập trình API17
USER32.DLL
4. Một số hàm tiêu biểu có trong User32.dll
4.1 CreateWindow
Chức năng:
Tạo ra một cửa sổ chồng chéo, cửa sổ pop-up, hoặc cửa sổ con. Nó xác
định lớp cửa sổ, tiêu đề cửa sổ, kiểu cửa sổ, vị trí và kích thước của cửa
sổ ban đầu.
Kiểu trả về: HWND
Nếu hàm thực hiện thành công, giá trị trả về là một handle của cửa sổ
mới.
Nếu hàm không thành công, giá trị trả về là NULL
Thư viện API, lập trình API18
USER32.DLL
4. Một số hàm tiêu biểu có trong User32.dll
4.2 MoveWindow
Cú pháp
BOOL WINAPI MoveWindow [
_In_ HWND hWnd,
_In_ int X,
_In_ int Y,
_In_ int nWidth,
_In_ int nHeight,
_In_ BOOL bRepaint
];
Thư viện API, lập trình API19
USER32.DLL
4. Một số hàm tiêu biểu có trong User32.dll
4.2 MoveWindow
Các tham số:


hWnd: handle của cửa sổ.

x: vị trí mới của phía bên trái cửa sổ

y: vị trí mới của phía trên cửa sổ

nHeight: chiều cao mới của cửa sổ

nWidth: chiều rộng mới của cửa sổ

bRepaint: Cho biết các cửa sổ sẽ được sơn lại. Nếu tham số này là TRUE,
cửa sổ nhận được một thông điệp, Nếu tham số này là FALSE, không sơn lại
bất cứ cửa sổ nào.
Thư viện API, lập trình API20
USER32.DLL
4. Một số hàm tiêu biểu có trong User32.dll
4.2 MoveWindow
Kiểu trả về: BOOL
Nếu hàm thực hiện thành công, giá trị trả về khác không.
Ngược lại, giá trị trả về bằng không
Chức năng
Thay đổi kích thước và vị trí của một cửa sổ cho trước.
Thư viện API, lập trình API21
USER32.DLL
4. Một số hàm tiêu biểu có trong User32.dll
4.3 BringWindowToTop
Cú pháp:
BOOL WINAPI BringWindowToTop [ _In_ HWND hWnd ];
Các tham số:

hWmd: handle của cửa sổ cần đưa lên trên.
Kiểu trả về: BOOL
Chức năng:
Đưa cửa sổ được chỉ định lên đầu, Nếu cửa sổ là một cửa sổ cấp cao, nó được kích
hoạt. Nếu cửa sổ là một cửa sổ con, cửa sổ cha liên quan đến cửa sổ con được kích
hoạt. Sử dụng hàm BringWindowToTop để phát hiện ra cửa sổ bất kỳ bị che khuất
một phần hoặc hoàn toàn bị che khuất bởi các cửa sổ khác.
Thư viện API, lập trình API22
USER32.DLL
4. Một số hàm tiêu biểu có trong User32.dll
4.4 CloseWindow
Cú pháp:
BOOL WINAPI CloseWindow[ _In_ HWND hWnd ];
Các tham số:
hWnd: handle của cửa sổ cần thu nhỏ.
Kiểu trả về: BOOL
Chức năng:
Thu nhỏ[nhưng không phá huỷ] cửa sổ được chỉ định.
Thư viện API, lập trình API23
USER32.DLL
4. Một số hàm tiêu biểu có trong User32.dll
4.5 DestroyWindow
Cú pháp:
BOOL WINAPI DestroyWindow[ _In_ HWND hWnd ];
Các tham số:
hWnd: handle của cửa sổ cần phá huỷ.
Kiểu trả về: BOOL
Chức năng: Phá huỷ các cửa sổ được chỉ định.
Thư viện API, lập trình API24
USER32.DLL

4. Một số hàm tiêu biểu có trong User32.dll
4.6 GetGUIThreadInfo
Cú pháp:
BOOL WINAPI GetGUIThreadInfo [
_In_ DWORD idThread,
_Inout_ LPGUITHREADINFO lpgui
];
Các tham số:
idThread: định danh cho các cửa sổ hoặc chủ đề muốn lấy thông tin.
lpgui: Một con trỏ trỏ tới một cấu trúc GUITHREADINFO để tiếp nhận thông tin mô tả các
chủ đề hoặc cửa sổ được chỉ định.
Kiểu trả về: BOOL
Chức năng: Lấy thông tin về các cửa sổ đang hoạt động hoặc một GUI được chỉ định.
Thư viện API, lập trình API25

Chủ Đề