當前位置:係統粉 >   IT資訊 >   微軟資訊 >  IT之家學院:將Win10任務欄改造為媒體控製欄

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

時間:2017-06-03 來源:互聯網 瀏覽量:

先上圖:

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

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

IT之家學院:將Win10任務欄改造為媒體控製欄(1)

高級篇

一、快捷媒體控製

所需工具:Visual Studio 2017

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

IT之家學院:將Win10任務欄改造為媒體控製欄(2)

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

IT之家學院:將Win10任務欄改造為媒體控製欄(3)

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任務欄改造為媒體控製欄(4)IT之家學院:將Win10任務欄改造為媒體控製欄(5)

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

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

IT之家學院:將Win10任務欄改造為媒體控製欄(6)

注釋: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任務欄改造為媒體控製欄(7)

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

IT之家學院:將Win10任務欄改造為媒體控製欄(8)IT之家學院:將Win10任務欄改造為媒體控製欄(9)

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

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

IT之家學院:將Win10任務欄改造為媒體控製欄(10)

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

小白篇

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

解壓得到四個文件。

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

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

IT之家學院:將Win10任務欄改造為媒體控製欄(11)

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

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

IT之家學院:將Win10任務欄改造為媒體控製欄(12)
我要分享:

最新熱門遊戲

版權信息

Copyright @ 2011 係統粉 版權聲明 最新發布內容 網站導航