先上圖:
本教程將在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
下載