Tôi muốn lấy danh sách cửa sổ cho một ứng dụng đang chạy. Tôi có thể lấy danh sách ứng dụng đang chạy từ [[NSWorkspace sharedWorkspace] runningApplications]
, nhưng danh sách cửa sổ chỉ có sẵn trên NSApplication
. Có cách nào để chuyển đổi từ NSRunningApplication
thành NSApplication
hoặc một số cách để có được danh sách cửa sổ trực tiếp hơn không?cách nhận các cửa sổ của NSRunningApplication
Trả lời
Bạn cần xem cuộc gọi CoreGraphics CGWindowListCopyWindowInfo
.
Bạn gọi nó như thế này
CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID);
và sau đó lặp qua các mảng thông tin cửa sổ, tìm những người mà là từ các ứng dụng mà bạn đang quan tâm, và làm những gì bạn muốn với nó.
Xin chào Ken! Đó là một câu trả lời hay, nhưng nó vẫn không biết cách lấy 'CG/NSWindow' ;-)' NSRunningApplication' không cung cấp số cửa sổ/cửa sổ và tôi đang gặp lỗi (có thể làm điều gì sai) khi cố gắng để có được 'NS/CGWindow' với' CGWindowID' của tôi thu được bằng 'CGWindowListCopyWindowInfo' –
Đó là vì bạn không thể tạo một NSWindow cho một ứng dụng khác. Theo như nhận được các cửa sổ cho một ứng dụng cụ thể, bạn có thể kiểm tra và so sánh giá trị của khóa 'kCGWindowOwnerPID' với thuộc tính' processIdentifier' của 'NSRunningApplication'. – mattsven
- 1. Nhận màu nền của cửa sổ
- 2. Cách nhận màu nền của hộp thoại/cửa sổ?
- 3. 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ó?
- 4. Nhận cửa sổ hiện hoạt cuối cùng: Nhận cửa sổ hoạt động trước đó
- 5. nhận tên cửa sổ thông báo
- 6. Gọi JavaScript của cửa sổ mẹ từ cửa sổ con
- 7. cách nhận dữ liệu nhập từ cửa sổ bật lên
- 8. Cách nhận cửa sổ có nền mờ trong suốt
- 9. Cách đóng cửa sổ Kendo trong nội dung cửa sổ?
- 10. Python - nhận văn bản từ cửa sổ
- 11. Cách lấy chiều rộng của khung cửa sổ, trước khi tạo bất kỳ cửa sổ nào?
- 12. TCP - sự khác biệt giữa cửa sổ Congestion và cửa sổ Nhận
- 13. Làm cách nào tôi có thể đặt kích thước cửa sổ của cửa sổ lô?
- 14. Nhận cửa sổ xử lý (IntPtr) từ cửa sổ hiện tại của trình duyệt web Selenium GUID
- 15. Cách tạo cửa sổ WPF không cửa sổ có thể kéo được mà không nhận được InvalidOperationException
- 16. Triển khai tối thiểu của couchdb trên các cửa sổ
- 17. Cách nhận và đặt vị trí cửa sổ của ứng dụng khác trong C#
- 18. Linux: cách nhận danh sách tất cả các cửa sổ hiển thị
- 19. Làm cách nào để liên kết nền cửa sổ với màu nền của cửa sổ của chủ đề?
- 20. Nhận danh sách tất cả các cửa sổ đang mở bằng cách sử dụng AutoIt
- 21. Làm cách nào để gắn các cửa sổ con vào cửa sổ mẹ ở các vị trí tương đối?
- 22. Xử lý cửa sổ của ứng dụng
- 23. AngularJS - Nhận tham chiếu đến $ rootscope trong cửa sổ con
- 24. Đặt hình nền của cửa sổ OpenGL
- 25. Cách ẩn cửa sổ bật lên của URL trong UIwebview
- 26. JavaScript nhận cửa sổ Vị trí X/Y để cuộn
- 27. Cách tìm mô-đun CMake qt5 trên các cửa sổ
- 28. nâng cấp các cửa sổ phpunit
- 29. Làm cách nào để nhận được phần còn lại của các đối số trong tệp loạt cửa sổ?
- 30. cách nhận id nhà cung cấp và id sản phẩm của thiết bị cắm USB trên các cửa sổ
Đây là câu hỏi tương tự, đã được trả lời: http://stackoverflow.com/questions/2107657/mac-cocoa-getting-a-list-of-windows-using-accessibility-api –
Ngay cả ở đây http: // stackoverflow.com/questions/13759688/how-to-find-out-if-an-instance-of-my-app-is-already-running-or-not/13759928#13759928 –
Danh sách góa phụ trực tiếp hơn nghĩa là gì? –