主题 : 将Win10任务栏改造为媒体控制栏
千山同一月 万户尽皆春 千江有水千江月 万里无云万里天
级别: 总版主

UID: 998
精华: 0
发帖: 605044
威望: 529548 点
无痕币: 13 WHB
贡献值: 0 点
在线时间: 62481(时)
注册时间: 2008-12-25
最后登录: 2024-05-13

0 将Win10任务栏改造为媒体控制栏

先上图:

本教程将在Windows任务栏上加入媒体控制快捷方式并在Cortana搜索框里显示当前播放的曲名。本教程分为两个部分:小白教程和高级教程。
FBI Warning:本教程采用倒叙的叙述方式(先高级篇后小白篇)。

高级篇
一、快捷媒体控制
所需工具:Visual Studio 2017
1.先确保您的VS安装了.NET桌面开发组件。

2.新建一个Visual C#控制台应用,项目命名为MediaCtrl

3.加入using引入
usingSystem;
usingSystem.Diagnostics;
usingSystem.Runtime.InteropServices;
usingSystem.Windows.Forms;


4.在Program类里引入需要用到的Win32 API
[DllImport("user32.dll",EntryPoint="keybd_event",SetLastError=true)]
publicstaticexternvoidkeybd_event(KeysbVk,bytebScan,uintdwFlags,uintdwExtraInfo);


注释:Windows提供了一个模拟键盘API函数keybd_event(),使用该函数可以相应的屏蔽键盘的动作。
5.在Main主函数里进行命令处理
static void Main(string[]args){
if(args.Length>0){
switch(args[0]){
case "p"://播放-暂停
keybd_event(Keys.MediaPlayPause,0,0,0);
keybd_event(Keys.MediaPlayPause,0,2,0);
break;
case "c"://桌面歌词Ctrl+Alt+D
keybd_event(Keys.ControlKey,0,0,0);
keybd_event(Keys.Menu,0,0,0);
keybd_event(Keys.D,0,0,0);
keybd_event(Keys.ControlKey,0,2,0);
keybd_event(Keys.Menu,0,2,0);
keybd_event(Keys.D,0,2,0);
break;
case "next"://下一曲
keybd_event(Keys.MediaNextTrack,0,0,0);
keybd_event(Keys.MediaNextTrack,0,2,0);
break;
case "pre"://上一曲
keybd_event(Keys.MediaPreviousTrack,0,0,0);
keybd_event(Keys.MediaPreviousTrack,0,2,0);
break;
default:
break;
}
}


注释:模拟一次键盘按键要调用两次keybd_event方法,第三个参数分别为0和2,这分别代表按键的按下和松开。桌面歌词发送的是Ctrl+Alt+D三个按键,这是网易云音乐(桌面版)的默认全局快捷键,大家可以自行更改适配不同的音乐软件
6.生成项目


7.编写快捷方式生成脚本
在生成项目的Debug目录里新建一个install.vbs文件,加入以下内容:

注释:oShellLink.IconLocation是快捷方式图标的位置,可以指向ico图标或dll里的图标资源。可以从阿里矢量图标库里下载你所需要的图标并转化为ico格式,所以脚本和下图中的ResDll.dll包含着图标资源,大家可以用ico图标代替。

8.双击运行vbs文件,桌面上会生成四个快捷方式

9.将这四个快捷方式逐个拖动到任务栏上即可。(完成后桌面上的快捷方式可以删除)

级别: 九滴秋露

UID: 103037
精华: 0
发帖: 15204
威望: 97912 点
无痕币: 5 WHB
贡献值: 0 点
在线时间: 6638(时)
注册时间: 2010-09-22
最后登录: 2024-05-05

感谢分享
Total 0.078246(s) query 5, Time now is:05-13 01:17, Gzip enabled 粤ICP备07514325号-1
Powered by PHPWind v7.3.2 Certificate Code © 2003-13 秋无痕论坛