Làm thế nào để biết khi nào EnumWindows kết thúc danh sách cửa sổ? Bởi vì EnumWindows nhận một hàm gọi lại làm tham số và nó tiếp tục gọi nó cho đến khi không có thêm cửa sổ nào được liệt kê.Làm thế nào để biết khi nào EnumWindows kết thúc việc liệt kê các cửa sổ?
5
A
Trả lời
9
EnumWindows()
khối trong khi điều tra đang diễn ra. Khi EnumWindows()
kết thúc liệt kê thông qua các cửa sổ, nó trả về một BOOL
.
Đoạn mã sau:
#include <windows.h>
#include <cstdio>
BOOL CALLBACK MyEnumWindowsProc(HWND hwnd, LPARAM lparam)
{
int& i = *(reinterpret_cast<int*>(lparam));
++i;
char title[256];
::GetWindowText(hwnd, title, sizeof(title));
::printf("Window #%d (%x): %s\n", i, hwnd, title);
return TRUE;
}
int main()
{
int i = 0;
::printf("Starting EnumWindows()\n");
::EnumWindows(&MyEnumWindowsProc, reinterpret_cast<LPARAM>(&i));
::printf("EnumWindows() ended\n");
return 0;
}
mang lại cho tôi một đầu ra như thế này:
Starting EnumWindows() Window #1 (<hwnd>): <title> Window #2 (<hwnd>): <title> Window #3 (<hwnd>): <title> <and so on...> EnumWindows() ended
Vì vậy, chắc chắn EnumWindows()
liệt kê một cách đồng bộ.
Các vấn đề liên quan
- 1. Làm cách nào để liệt kê các tệp không kết thúc bằng dòng mới?
- 2. Làm thế nào để biết kết thúc của mảng int *?
- 3. Truy vấn Javascript WebSQL trong vòng lặp. Làm thế nào để biết khi nào kết thúc?
- 4. Làm thế nào để biết khi nào đồng bộ kết thúc?
- 5. Làm cách nào để tạo một bảng liệt kê các màu trong ứng dụng biểu mẫu cửa sổ?
- 6. ExecutorService, làm thế nào để biết khi nào tất cả các luồng kết thúc mà không chặn luồng chính?
- 7. Làm thế nào để liệt kê các mã hóa Iconv hợp lệ trong Ruby?
- 8. Làm thế nào tôi có thể biết Khi nào một hoạt ảnh UITableView đã kết thúc?
- 9. Làm thế nào để chạy chức năng của cửa sổ cha khi cửa sổ con đóng?
- 10. Làm thế nào để liệt kê các kết nối đang hoạt động/mở trong Oracle?
- 11. Làm thế nào để biết khi nào một dịch vụ CompletionService kết thúc phân phối kết quả?
- 12. Làm cách nào để liệt kê các cam kết từ một số cam kết nhất định?
- 13. Làm thế nào để biết khi nào một hoạt động kết thúc một cách bố trí vượt qua?
- 14. Làm thế nào để chạy chức năng của cửa sổ cha khi cửa sổ con đóng?
- 15. Làm thế nào để liệt kê các chi nhánh có chứa tương đương cam
- 16. RXTX không thể liệt kê hoặc tìm các cổng trong các cửa sổ 7 64 bit
- 17. Làm thế nào tôi có thể nhận được các cửa sổ con của một cửa sổ cho HWND của nó?
- 18. Điều kiện kết hợp các liệt kê
- 19. Làm cách nào để chỉ liệt kê các tệp sẽ được cam kết?
- 20. Liệt kê tất cả các thuộc tính của đối tượng cửa sổ?
- 21. Làm thế nào để liệt kê các cửa sổ thư mục máy chủ tftp và các tập tin từ dấu nhắc lệnh?
- 22. Làm thế nào để liệt kê các assembly trong AggregateCatalog hoặc DirectoryCatalog trong MEF?
- 23. Làm thế nào để có được git thay đổi dòng kết thúc trong thư mục làm việc?
- 24. Vị trí cửa sổ WPFThay đổi kết thúc
- 25. Làm thế nào để liệt kê các âm thanh ra thiết bị trong C#
- 26. Làm thế nào để hiển thị lại cửa sổ chính sau khi đóng cửa trong Cocoa?
- 27. Unix: Làm thế nào để xóa các tập tin được liệt kê trong một tập tin
- 28. Làm thế nào để liệt kê các tên khóa đối tượng với jsonpath?
- 29. Làm thế nào để bash biết nơi tên biến của tôi kết thúc?
- 30. làm thế nào để biết nếu một chuỗi $ kết thúc bằng ','?
như tôi đã thử nghiệm, nó không chặn, chỉ sau khoảng 1-> 2 giây sau đó danh sách cửa sổ được liệt kê đầy đủ, bất kỳ ý tưởng nào khác? – jondinham
@Paul: Phải có một sai lầm. Bạn có thể đăng mã sử dụng 'EnumWindows()'? Tôi cũng đã thử nghiệm nó và nó khối và trả về chỉ sau khi nó kết thúc liệt kê thông qua các cửa sổ. –
Tôi đã kiểm tra lại, sai lầm của tôi. nó chặn. :) – jondinham