2011-08-22 26 views
8

Rất nhiều bàn phím có các chức năng truyền thông phổ biến như tiếp theo/trước đó, phát/tạm dừng và dừng. Họ có sử dụng một số API hiện có trong Windows hay chúng thực hiện các chức năng cụ thể cho các trình phát đa phương tiện phổ biến nhất (WMP, WinAmp, Spotify ...)? Tất cả bàn phím mà tôi sở hữu có chức năng này dường như chỉ hoạt động với mọi thứ, bất kể độ tuổi của bàn phím so với phần mềm, vì vậy tôi nghĩ có thể có một API đã được tạo sẵn cho điều này.API Windows cho các chức năng trình phát phương tiện phổ biến?

Nếu họ sử dụng API đã có trong Windows, tôi có thể tìm thông tin về nó ở đâu?

Chỉ cần làm rõ: Tôi không tìm cách tương tác với trình phát Windows Media cụ thể. Tôi muốn thấy rằng một nút ma thuật để đạt tới tất cả các trình phát đa phương tiện (được hỗ trợ) - nếu có.

+0

Tôi luôn tự hỏi làm thế nào nó đã có thể có điều khiển từ xa generic cho Windows, nhưng không bao giờ kết nối các dấu chấm - cảm ơn vì đã đặt câu hỏi này. –

Trả lời

6

đây chỉ là mã khóa ảo - cho danh sách chính thức, xem MSDN.

Ở đó bạn tìm thấy ví dụ VK_VOLUME_UPVK_MEDIA_PLAY_PAUSEVK_ZOOM

Thậm chí một số Remotes dịch để các mã được như tương thích càng tốt với các phần mềm hiện có ..

EDIT - theo bình luận:

Chúng được giới thiệu trở lại trong ngày khi Windows ME (!) Xuất hiện và vẫn đang được sử dụng - ít nhất là khi tôi kiểm tra sổ đăng ký Windows 2008 R2 của tôi!

Về cơ bản, Windows dịch VK * thành WM_APPCOMMAND thư với một số mã nhất định mà ứng dụng nghe ...
Nếu phím có liên quan đến việc khởi chạy ứng dụng (ví dụ: Thư, Trình duyệt, vv) xảy ra thông qua Windows Explorer mà đọc bản đồ (hoặc bởi hiệp hội hoặc trực tiếp exec) từ sổ đăng ký tại Software\ Microsoft\ Windows\ CurrentVersion\ Explorer\ AppKey - hoặc HKLM hoặc HKCU.

Một số liên kết với cũ nhưng vì nó vẫn có vẻ thông tin hợp lệ:

+0

... nhưng chức năng cơ bản trong Windows sử dụng các mã khóa này không bị lộ ở bất kỳ đâu? –

+0

bạn có nghĩa là làm thế nào cửa sổ biết ví dụ ứng dụng để bắt đầu khi ai đó presse 'VK_LAUNCH_MAIL'? – Yahia

+1

Không nhất thiết phải như thế nào, nhưng bất cứ chức năng/phương thức nào nó gọi xuống dưới đây. Ý tôi là, vì Windows nhận ra rất nhiều ứng dụng khác nhau có thể sử dụng, ví dụ: chức năng phát/tạm dừng, nó phải có một số loại giao diện chung để tìm kiếm, có thể được kích hoạt thông qua một chức năng cụ thể trong chính Windows ...? –

6

Chúng đơn giản tạo mã khóa ảo mà DefWindowProc() nhận ra. Sao chép trực tiếp từ các tập tin tiêu đề WinUser.h:

#if(_WIN32_WINNT >= 0x0500) 
#define VK_BROWSER_BACK  0xA6 
#define VK_BROWSER_FORWARD  0xA7 
#define VK_BROWSER_REFRESH  0xA8 
#define VK_BROWSER_STOP  0xA9 
#define VK_BROWSER_SEARCH  0xAA 
#define VK_BROWSER_FAVORITES 0xAB 
#define VK_BROWSER_HOME  0xAC 

#define VK_VOLUME_MUTE   0xAD 
#define VK_VOLUME_DOWN   0xAE 
#define VK_VOLUME_UP   0xAF 
#define VK_MEDIA_NEXT_TRACK 0xB0 
#define VK_MEDIA_PREV_TRACK 0xB1 
#define VK_MEDIA_STOP   0xB2 
#define VK_MEDIA_PLAY_PAUSE 0xB3 
#define VK_LAUNCH_MAIL   0xB4 
#define VK_LAUNCH_MEDIA_SELECT 0xB5 
#define VK_LAUNCH_APP1   0xB6 
#define VK_LAUNCH_APP2   0xB7 

#endif /* _WIN32_WINNT >= 0x0500 */ 

Vì tất cả các cửa sổ gọi hàm DefWindowProc(), bạn chỉ có thể sử dụng SendInput hoặc keybd_event để gửi keystroke.

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