2010-05-12 30 views
18

Một tìm kiếm Google nhanh chóng cho các giải pháp để Focus Stealing trong Windows cho thấy hai loại kết quả chính:Làm cách nào để ngăn chặn lấy cắp tiêu điểm trong Windows?

  • dân đề nghị giải pháp đầy đủ liên quan đến các mục nhập registry ForegroundLockTimeout (hoặc TweakUI, mà tôi tin rằng chỉ đơn giản là thay đổi mục đăng ký nói trên), không hiệu quả lắm.
  • Incessanthordes người dùng Windows complaining về it.

Đó là đặc biệt gây phiền nhiễu trong hai kịch bản phổ biến:

  • Something gây nên một chương trình để bật lên một cửa sổ hộp thoại ở chế độ nền trong khi một ứng dụng toàn màn hình tập trung, gây ra ứng dụng toàn màn hình để giảm thiểu.

  • Cửa sổ đánh cắp tiêu điểm trong khi bạn đang nhập, đánh cắp tất cả các lần nhấn phím của bạn. Nếu bạn tình cờ nhấn Space, Enter, hoặc kích hoạt một phím tắt (như Y cho Yes), nó có thể gây ra kết quả hoàn toàn không mong muốn.

Có thể áp dụng các giải pháp sáng tạo nào để khắc phục sự cố này cho một hoặc cả hai trường hợp này?

+0

Wiki cộng đồng? –

+4

Giải pháp lập trình sẽ là viết các ứng dụng không ăn cắp tiêu điểm, dường như không phải là những gì được hỏi ở đây. Tôi nghĩ đây là một công việc cho Super User. –

+1

Siêu người dùng không thể phân phối về vấn đề chính xác này. http://superuser.com/questions/18383/preventing-applications-stealing-focus - giải pháp duy nhất của họ là câu trả lời ForegroundLockTimeout/TweakUI đã nói ở trên – lunixbochs

Trả lời

2

Tôi có một đề xuất về cách giải quyết nó, nhưng tôi không thể thực hiện nó hoàn toàn vì tôi thiếu kiến ​​thức.

Sự thay đổi trọng tâm giữa các cửa sổ phải được xúi giục bởi chương trình vi phạm gọi hàm Windows API có lẽ nằm trong shell32 hoặc user32 nhất. Một số progams, như Adobe Photoshop làm cho cuộc gọi nhiều lần (ít nhất hai lần) để buộc chính nó lên trên người dùng khi nó bắt đầu. Ý tưởng là để nối vào hàm API này (nếu có thể) và kiểm tra xem cuộc gọi bắt nguồn từ đâu. Nếu không phải từ explorer.exe (tức là Alt + Tabbing hoặc nhấp vào biểu tượng trên thanh tác vụ), thì cuộc gọi sẽ bị chặn bởi móc được nói.

+0

Tôi tìm thấy một cửa sổ API sử dụng để thông báo cho các chương trình khi các chương trình khác được lấy tiêu điểm (như cho các vỏ để hiển thị cửa sổ hiện hoạt). Tôi tin rằng nó có thể được sử dụng để ngăn chặn hoàn toàn sự kiện trọng tâm xảy ra. – lunixbochs

Các vấn đề liên quan