🪟 Check cửa sổ, HWND, exe
Dùng trước khi start đa luồng: lấy hwnd, title, process, kiểm tra cửa sổ còn sống. Kích thước client quyết định tọa độ click / ảnh mẫu.
Danh sách mặc định giống dropdown trên UI: cửa sổ Alt-Tab, có title, client ≥ 80×80.
Liệt kê cửa sổ
GET /api/v1/windows
GET /api/v1/windows?process=dnplayer.exe
GET /api/v1/windows?title=LDPlayer
GET /api/v1/windows?q=ldplayer,dnplayer
GET /api/v1/windows?all=1| Query | Ý nghĩa |
|---|---|
process | Khớp tên process (không phân biệt .exe) |
title | Title chứa chuỗi, không phân biệt hoa thường |
q / filter | Lọc tự do: title / process / đường dẫn exe (nhiều token, tách bởi khoảng trắng hoặc , ;) |
min_w / min_h | Kích thước client tối thiểu (mặc định 80) |
all=1 | Liệt kê rộng hơn (min 1×1, không chỉ Alt-Tab) — nên dùng khi HWND giả lập hay bị sót |
{
"ok": true,
"count": 2,
"windows": [
{
"hwnd": 198764,
"title": "LDPlayer-1",
"pid": 4520,
"process": "dnplayer.exe",
"exe": "C:\\LDPlayer\\dnplayer.exe",
"class": "LDPlayerMainFrame",
"client_w": 540,
"client_h": 960,
"visible": true,
"alive": true,
"input_hwnd": 198800,
"instance_key": "hwnd:198764"
}
]
}| Field | Ý nghĩa |
|---|---|
hwnd | Handle cửa sổ — truyền vào start / start-mt |
process | Tên exe (vd dnplayer.exe) |
exe | Đường dẫn đầy đủ (nếu đọc được) |
client_w / client_h | Kích thước vùng client (tọa độ click/ảnh tính theo cái này) |
alive | IsWindow còn true |
instance_key | Khóa job đa luồng (hwnd:{số}) |
input_hwnd | Child thường nhận click (Chrome/Unity…). Vẫn truyền HWND cửa sổ cha vào start. |
Kiểm tra một HWND
GET /api/v1/windows/{hwnd}- 200 — còn hoặc vừa đóng (khi đóng:
alive: false, title/process rỗng nếu không đọc được). - 404 — không parse được / không có thông tin.
- 400 —
{hwnd}không phải số.
Dùng để poll: giả lập tắt giữa chừng → alive: false.
{
"ok": true,
"window": {
"hwnd": 198764,
"alive": true,
"title": "LDPlayer-1",
"process": "dnplayer.exe",
"client_w": 540,
"client_h": 960
}
}Gom theo exe
GET /api/v1/exes
GET /api/v1/exes?process=dnplayer
GET /api/v1/exes?all=1Cùng bộ query như /windows, nhưng gom nhóm.
{
"ok": true,
"count": 1,
"exes": [
{
"process": "dnplayer.exe",
"exe": "C:\\LDPlayer\\dnplayer.exe",
"window_count": 3,
"pids": [4520, 4521],
"windows": [
{ "hwnd": 198764, "title": "LDPlayer-1" }
]
}
]
}Luồng điển hình
GET /exes?process=dnplayer → lấy windows[].hwnd → kiểm tra /windows/{hwnd} → POST .../start-mt. Không hardcode HWND giữa các lần mở app (HWND đổi mỗi lần launch).