2011-08-25 13 views
8

Tôi muốn cung cấp tùy chọn với trình phát đa phương tiện tôi đang làm việc để các phím media hoạt động ngay cả khi nó được thu nhỏ. Cách tốt nhất để nắm bắt và xử lý các sự kiện chính trong C# mà không cần tập trung là gì? Thậm chí có thể không?Capture Khóa Media khi Ứng dụng được Thu nhỏ

+1

WPF hoặc WinForm? – ARZ

+0

Tôi rất vui vì bạn đã chọn tùy chọn này - tôi ghét khi ứng dụng kiêu ngạo tiếp nhận các tài nguyên trên toàn hệ thống như vậy. –

Trả lời

6

Tôi không nghĩ rằng có một cách dễ dàng để thực hiện việc này nhưng dự án this (Using Window Messages to Implement Global System Hooks in C#) có thể hữu ích. tôi đã thêm mã dưới đây

_GlobalHooks.Keyboard.KeyboardEvent += (w, l) => 
    { 
      this.LblMouse.Text = "KEY: " + w.ToInt32().ToString("X8") + " " + l.ToInt32().ToString("X8"); 
    }; 
    _GlobalHooks.Keyboard.Start(); 

đến constructor của Form1 của GlobalHookTest và đã có thể giám sát tất cả các sự kiện bàn phím.

3

Bạn có thể làm điều đó nhưng chỉ với một số hooking toàn cầu - cho mã nguồn và chi tiết xem

EDIT :

HÃY THÊM rằng một số Phím đa phương tiện có được dịch ed thành APP_COMMAND Thông báo của Windows - vì vậy bạn cũng nên suy nghĩ về việc móc những thông điệp đó.

NẾU bạn muốn làm cho trình phát media của bạn tự động bắt đầu trên báo chí của một phím (phương tiện), hãy xem các liên kết here.

1

Sử dụng móc bàn phím toàn cầu (Processing Global Mouse and Keyboard Hooks in C#)

Chỉ cần tạo móc khi khởi động ứng dụng/form của bạn. Bạn có thể đặt KeyEventHandlers cho các sự kiện lên, xuống và nhấn phím chung. Sau đó, bạn có thể kiểm tra xem đó có phải là tổ hợp Key mà bạn đang tìm kiếm hay không.