2009-02-28 43 views
7

Tôi muốn tạo ra một ứng dụng cửa sổ tiện ích, có thể được gọi là bất cứ lúc nào từ bên trong bất kỳ ứng dụng khác sử dụng phím tắt, ví dụ:Làm thế nào để đăng ký một phím tắt tùy chỉnh cho một ứng dụng cửa sổ

Win + T

Ctrl +T

Alt + T

Ctrl + Alt + T

Ctrl + phím Shift + T

Tôi có thể dùng tổ hợp phím và làm thế nào thế nào để thiết lập những người trong cửa sổ đăng ký?

(Nếu các phím tắt được sử dụng bởi một ứng dụng khác, nó nên dĩ nhiên không làm việc.)

+0

Bạn có yêu cầu đặt các phím tắt đó theo cách lập trình hoặc thủ công không? – Sung

+0

STRG là gì? Đây có giống CTRL không? –

+1

STRG là tên tiếng Đức của CTRL :) –

Trả lời

6

Một lựa chọn để làm điều đó programatically khi khởi động ứng dụng của bạn đang kêu gọi API này Windows:

RegisterHotKey(IntPtr hwnd, int id, int fsModifiers, int vk); 

Và để unregister gọi API này:

UnregisterHotKey(IntPtr hwnd, int id); 

Cả hai tồn tại trong user32 API

http://www.pinvoke.net/search.aspx?search=RegisterHotKey&namespace=[All]

+0

Hoạt động cho gán phím tắt có lập trình – Sung

+0

Điều đó chỉ hoạt động khi chương trình của bạn đang chạy đúng? –

+0

@ TimLovell-Smith có chính xác –

1

Nếu ứng dụng của bạn (hoặc một shortcut cho nó) có sẵn trên máy tính của bạn, bạn có thể nhấp chuột phải để có được menu ngữ cảnh, chọn Properties và nhập phím tắt ở đó. Chỉ cần nhấp vào trường văn bản Phím tắt và nhấn phím tắt mong muốn.

tôi đã gán WIN + C để máy tính của tôi, và WIN + V để điều chỉnh âm lượng của tôi.

+0

Hoạt động cho việc gán phím tắt thủ công – Sung

+0

Thật buồn cười. Điều này dường như chỉ làm việc cho các ứng dụng 'bản địa'. Vì mọi ứng dụng tôi đã tạo trong winforms C# không có cài đặt đó trong hộp thoại thuộc tính khi bạn nhấp chuột phải vào tệp trên máy tính để bàn –

+1

Đã tự hỏi [trên SuperUser] (http://superuser.com/q/424782/69392) có một kho lưu trữ tập trung cho những phím nóng đó. Tôi sẽ nghi ngờ rằng để được trong sổ đăng ký. Bây giờ bạn dường như ngụ ý rằng tập hợp các phím tắt "trên màn hình của bạn" được quét để ánh xạ phím nóng. Bất kỳ con trỏ nào để biết thêm chi tiết? – Lumi

1

Nếu bạn cần thêm kịch bản nâng cao cho những gì trình bao phím tắt cung cấp, bạn nên bắt đầu bằng cách đọc Win32 HooksHooks Overview.

Cụ thể hơn, bạn cần thêm móc WH_KEYBOARD bằng chức năng SetWindowsHookEx. Bạn cũng cần phải mở qua UnhookWindowsHookEx khi bạn hoàn tất.

Có một bài viết cũ từ Dino Esposito cách làm Windows Hooks in .NET thông qua một số Inter32 interop.

+0

Làm việc để gán phím tắt có lập trình – Sung

0

Tôi e rằng đây không phải là thứ bạn có thể làm chỉ bằng cách thiết lập các giá trị trong registry, như đã được chỉ ra trong các câu trả lời khác cần thiết để gọi một số thói quen API của Windows để đạt được điều này.

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