2009-06-03 37 views
5

Tôi muốn ứng dụng phát hiện các phím tắt khi nó không chạy, nhưng vì không có cơ sở để thực hiện điều này trong Windows nên dự phòng hợp lý sẽ có quy trình nền mà không có giao diện người dùng nào nghe nhạc bấm phím. Có thể giám sát các lần nhấn phím khi một ứng dụng không có trong nền trước trong .Net không?Cách dễ nhất để thêm lối tắt bàn phím chung trong Windows là gì?

Có vẻ như điều này CodeProject article có những gì tôi cần.

Trả lời

4

This library là khá tốt quá

EDIT: Gần đây tôi đã tạo ra thư viện này, trong đó sử dụng một cách tiếp cận khác nhau: NHotkey

3

Không có cách nào để làm cho nó không xâm nhập.

Nó luôn xâm nhập để thêm lối tắt bàn phím chung. Nếu bạn phải làm như vậy, hãy đảm bảo rằng đó là tính năng chọn tham gia, không chọn không tham gia.

4

Phím tắt Windows có thể có phím nóng được liên kết - nhấp chuột phải vào bất kỳ chương trình nào trong menu Bắt đầu, chuyển Thuộc tính và bạn sẽ thấy hộp "Phím tắt". Sau đó, Windows sẽ tìm kiếm phím nóng đó thay cho bạn và khởi chạy chương trình của bạn khi thấy nó. (Tôi sử dụng nó để thực hiện Ctrl+Alt+C khởi chạy Máy tính.)

Để thiết lập lập trình này, hãy sử dụng IShellLink.

+0

Làm thế nào tôi có thể tạo một liên kết vỏ lập trình? – Luke

+0

@Luke: http://www.codeproject.com/KB/mcpp/mcppshortcuts.aspx – RichieHindle

4

Bằng cách gọi API này:

RegisterHotKey

http://msdn.microsoft.com/en-us/library/ms646309.aspx

http://www.pinvoke.net/default.aspx/user32/RegisterHotKey.html

Sau đó ghi đè phương pháp này "WndProc" theo dõi bấm phím.

protected override void WndProc(ref System.Windows.Forms.Message m) 
    { 
     // let the base class process the message 
     base.WndProc(ref m); 

     // if this is a WM_HOTKEY message, notify the parent object 
     const int WM_HOTKEY = 0x312; 
     if (m.Msg == WM_HOTKEY) ............... 

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.wndproc(VS.71).aspx

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