當前位置:
首頁 > 科技 > IT之家學院:將Win10任務欄改造為媒體控制欄

IT之家學院:將Win10任務欄改造為媒體控制欄

先上圖:

本教程將在Windows任務欄上加入媒體控制快捷方式並在Cortana搜索框里顯示當前播放的曲名。本教程分為兩個部分:小白教程和高級教程。

FBI Warning:本教程採用倒敘的敘述方式(先高級篇後小白篇)。

IT之家學院:將Win10任務欄改造為媒體控制欄

高級篇

一、快捷媒體控制

所需工具:Visual Studio 2017

1.先確保您的VS安裝了.NET桌面開發組件。

IT之家學院:將Win10任務欄改造為媒體控制欄

2.新建一個Visual C#控制台應用,項目命名為MediaCtrl

IT之家學院:將Win10任務欄改造為媒體控制欄

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.生成項目

IT之家學院:將Win10任務欄改造為媒體控制欄

IT之家學院:將Win10任務欄改造為媒體控制欄

7.編寫快捷方式生成腳本

在生成項目的Debug目錄里新建一個install.vbs文件,加入以下內容:

IT之家學院:將Win10任務欄改造為媒體控制欄

注釋:oShellLink.IconLocation是快捷方式圖標的位置,可以指向ico圖標或dll里的圖標資源。可以從阿里矢量圖標庫里下載你所需要的圖標並轉化為ico格式,所以腳本和下圖中的ResDll.dll包含著圖標資源,大家可以用ico圖標代替。

8.雙擊運行vbs文件,桌面上會生成四個快捷方式

9.將這四個快捷方式逐個拖動到任務欄上即可。(完成後桌面上的快捷方式可以刪除)

二、Cortana搜索框實時顯示當前曲目

FBI Warning:本節涉及大量Win32 API編程以及Windows窗體工作機制。由於代碼過多本節不直接貼出代碼,只講實現原理。覺得困難請跳轉至下面的小白篇。

之家的一篇文章提到過利用修改註冊表修改小娜搜索框里的文本《Win10秘笈:讓Cortana搜索欄顯示你愛聽的話》,這種方法有一個致命缺點:更改後的文本不能實時顯示,只有重啟任務管理器才生效。所以本教程使用另一種方法——Spy++大法好。

Spy++是一個基於Win32的實用工具,它提供系統的進程、線程、窗口和窗口消息的圖形視圖。使用Spy++可以執行下列操作:顯示系統對象(包括進程、線程和窗口)之間關係的圖形樹。搜索指定的窗口、線程、進程或消息。查看選定的窗口、線程、進程或消息的屬性。

IT之家學院:將Win10任務欄改造為媒體控制欄

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

IT之家學院:將Win10任務欄改造為媒體控制欄

IT之家學院:將Win10任務欄改造為媒體控制欄

在C# Form程序中調用Win32 API里的FindWindow方法獲得小娜搜索框的窗口句柄,再調用SendMessage方法向搜索框里的Static控制項發送SET_TEXT消息即可更改小娜搜索框里的文本。

打開網易雲音樂(桌面版),在Spy++中瀏覽所有窗口,會發現有一個窗口標題就是當前播放的曲名。

IT之家學院:將Win10任務欄改造為媒體控制欄

在程序中用FindWindow方法獲得這個窗口的句柄,再調用SendMessage方法向搜窗口發送GET_TEXT消息即可獲得當前播放的曲名。項目Github點此。

小白篇

不會寫代碼的小白可以直接使用已經生成的工程,點此下載。

解壓得到四個文件。

這裡的CortanaMusicUpdate.exe就是負責實時更新小娜文本框的程序,ResDll.dll是圖標庫(不喜歡默認圖標的自己找圖標,最後要ico格式的、ico格式的、ico格式的)。

雙擊install.vbs在桌面生成快捷方式,快捷方式右鍵-屬性可以替換自己的圖標。

IT之家學院:將Win10任務欄改造為媒體控制欄

註:CortanaMusicUpdate.exe僅支持網易雲音樂(桌面版)。

最後再次附上效果圖自己的桌面(標配的軟媒魔方和軟媒時間)。

IT之家學院:將Win10任務欄改造為媒體控制欄

想看到更多這類內容?去APP商店搜IT之家,天天都有小歡喜。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT之家 的精彩文章:

魅族Pro 7/Plus手機專利圖渲染:背面是個老式MP3
新浪微博系統升級:一大波假冒海外代購黨要被曝光

TAG:IT之家 |

您可能感興趣

Windows10 任務欄
Airbus和IBM計劃讓機器人CIMON加入國際空間站執行任務
OPPO Find X審查:未完成的任務
NASA太空技術任務部使用Bally Ribbon Mills公司3D編製材料開發新的熱防護系統
CVPR 2018最佳論文作者親筆解讀:研究視覺任務關聯性的Taskonomy
DeepMind 打造全新學習模式「SAC-X」,鼓勵機器人自我摸索完成任務
今天最新發布NASA-ISRO SAR 任務科學用戶手冊
英國首位宇航員Helen Sharman:NASA計劃派出全女性成員團隊執行火星探測任務
CVPR 2018最佳論文作者親筆解讀:研究視覺任務間關聯的Taskonomy
Gartner:數字業務成為中國CIO們的首要任務
ICLR 2018|論文:視覺模仿系統GSP,僅觀察演示就學會執行任務
20項任務全面碾壓BERT,CMU全新XLNet預訓練模型屠榜(已開源)
蘋果MacBook Pro Touch Bar用上Windows 10任務欄
令人唏噓,HTC打算將HTC 12Life生產任務外包
微軟To-Do iOS版v1.37更新:全新重複任務
NET平台開源項目之Cron任務調度CronNET
DeepMind提出新型SACX學習範式,從零開始訓練機器人解決複雜任務
Windows10上純粹的任務欄透明軟體——TranslucentTB
NASA希望公民科學家為其在小行星Bennu取樣任務提供幫助
Ocado發布人形機器人ARMAR-6,或將與人類共同執行維修任務