先上圖:
本教程將在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.將這四個快捷方式逐個拖動到任務欄上即可。(完成後桌麵上的快捷方式可以刪除)
二、Cortana搜索框實時顯示當前曲目
FBI Warning:本節涉及大量Win32 API編程以及Windows窗體工作機製。由於代碼過多本節不直接貼出代碼,隻講實現原理。覺得困難請跳轉至下麵的小白篇。
之家的一篇文章提到過利用修改注冊表修改小娜搜索框裏的文本《Win10秘笈:讓Cortana搜索欄顯示你愛聽的話》,這種方法有一個致命缺點:更改後的文本不能實時顯示,隻有重啟任務管理器才生效。所以本教程使用另一種方法——Spy++大法好。
Spy++是一個基於Win32的實用工具,它提供係統的進程、線程、窗口和窗口消息的圖形視圖。使用Spy++可以執行下列操作:顯示係統對象(包括進程、線程和窗口)之間關係的圖形樹。搜索指定的窗口、線程、進程或消息。查看選定的窗口、線程、進程或消息的屬性。

利用Spy++的窗口定位,將靶向定位在小娜文本框上,得到窗口句柄。


在C# Form程序中調用Win32 API裏的FindWindow方法獲得小娜搜索框的窗口句柄,再調用SendMessage方法向搜索框裏的Static控件發送SET_TEXT消息即可更改小娜搜索框裏的文本。
打開網易雲音樂(桌麵版),在Spy++中瀏覽所有窗口,會發現有一個窗口標題就是當前播放的曲名。

在程序中用FindWindow方法獲得這個窗口的句柄,再調用SendMessage方法向搜窗口發送GET_TEXT消息即可獲得當前播放的曲名。項目Github點此。
小白篇
不會寫代碼的小白可以直接使用已經生成的工程,點此下載。
解壓得到四個文件。
這裏的CortanaMusicUpdate.exe就是負責實時更新小娜文本框的程序,ResDll.dll是圖標庫(不喜歡默認圖標的自己找圖標,最後要ico格式的、ico格式的、ico格式的)。
雙擊install.vbs在桌麵生成快捷方式,快捷方式右鍵-屬性可以替換自己的圖標。

注:CortanaMusicUpdate.exe僅支持網易雲音樂(桌麵版)。
最後再次附上效果圖自己的桌麵(標配的軟媒魔方和軟媒時間)。
相關資訊
最新熱門應用
光速寫作軟件安卓版
辦公學習59.73M
下載
中藥材網官網安卓最新版
醫療健康2.4M
下載
駕考寶典極速版安卓app
辦公學習189.48M
下載
貨拉拉搬家小哥app安卓版
生活實用146.38M
下載
烘焙幫app安卓最新版
生活實用22.0M
下載
喬安智聯攝像頭app安卓版
生活實用131.5M
下載
駕考寶典科目四app安卓版
辦公學習191.55M
下載
九號出行
旅行交通133.3M
下載
全國潮汐表官方app最新
生活實用31.83M
下載
閃送一對一急送app安卓版
生活實用50.61M
下載