讓Rainmeter可以控制千千靜聽 - 桌布

Table of Contents

其實這是我一直以來想要找出答案的問題

最近因為剛退伍時間多的嚇死人的情況之下

剛好有了一個機會讓我接觸到這方面的知識

又剛好找對了方向,所以才有機會讓我在這邊

美其名是教學,其實是來騙騙p幣的XD
-----------------------------
首先要知道的是:為什麼Rainmeter可以控制Winamp以及讀取Winamp的資訊呢

這是因為Winamp他有提供一個ipc介面供使用者與Winamp溝通

至於為什麼foobar也可以跟Rainmeter溝通呢?

那是因為它用外掛的方式

綜合以上所說的,想要跟Rainmeter溝通,要嘛是用Winamp核心的播放器

要不然就是用外掛的方式模擬,如foobar及KMP等

而今天所要用的方式不是以上所說的兩種方式

而是使用修改面板的ini檔案即可達成

為什麼只要改改幾個字就能解決呢?

念資訊方面的人應該知道SendMessage這個東西吧

他是由user32.dll所提供的一個函式

作用是讓某個指定的程式做你要他做的事

而剛好Rainmeter跟Winamp溝通的方式也是使用這種方式

所以才能讓我在這邊唬唬各位
-------------廢話結束,以下教學範例使用[MKG - ver.sk2]來做講解----------------

將ini檔用文字編輯軟體打開,如:記事本

首先把千千靜聽的安裝位置,m3u及一些資料夾位置先設定好

接著要改的地方是:WindowClass=Winamp v1.x

使用全部取代的方式改成WindowClass=TTPlayer_PlayerWnd

再來就是要修改各個功能,以下一首(Next)為範例

先找到寫下一首這個功能的位置

如MKG - ver.sk2這個面板來說,是寫在[WaNext]這個地方

往下幾行可以找到

LeftMouseDownAction=!RainmeterPluginBang "MeasureWinamp SendMessage 273
40048 0"

這就是今天的主角啦

首先先解說一下各個參數

MeasureWinamp    SendMessage 273  40048  0
   ↑        ↑    ↑    ↑  ↑
定義WindowClass   不用改   System 參數 參數
的地方的Measure名稱 Message wParam iParam

如果想要實現下一首的功能的話,就改成

MeasureWinamp SendMessage 273 32006 198146

存檔更新面板之後測試一下

如果可以成功控制千千靜聽,恭喜你,你已經成功一半了,接著只要把各個參數帶入即可

下表是我已經測試出來的功能參數代號,基本的功能都有,但是有一些目前還是找不到

因為千千靜聽沒有提供讓使用者呼叫的涵式,所以需要靠比較特殊的方法來實現

功能名稱 | System Message | wParam | iParam
------------+---------------------+------------+-----------
上一首 | 273 | 32005 | 198178
------------+---------------------+------------+-----------
下一首 | 273 | 32006 | 198146
------------+---------------------+------------+-----------
停止 | 273 | 32002 | 198144
------------+---------------------+------------+-----------
播放/暫停 | 273 | 32000 | 198204
------------+---------------------+------------+-----------
靜音 | 273 | 32007 | 198156
------------+---------------------+------------+-----------
切換迷你模式| 273 | 32211 | 198160
與正常模式 | 273 | 32212 | 131798 <-兩組皆可以做切換
------------+---------------------+------------+-----------
開啟檔案 | 273 | 57601 | 131898
------------+---------------------+------------+-----------
音量加大5% | 273 | 32010 | 0
------------+---------------------+------------+-----------
音量減小5% | 273 | 32011 | 0
------------+---------------------+------------+-----------
關閉程式 | 273 | 57665 | 394650
------------+---------------------+------------+-----------

ps.覺得音量一次加大5%太慢,可將原本的改成

LeftMouseDownAction=!execute [!RainmeterPluginBang "MeasureWinamp SendMessage
273 32011 0"] [!RainmeterPluginBang "MeasureWinamp SendMessage 273 32011 0"]

也就是寫2次語法,他就會變成一次加10%了!!!

如果你改好之後發現無法使用

下載下面這個程式測試一下是否可以正常執行(需要.netframework 2.0)

小弟寫的,應該不會有毒吧???

http://www.badongo.com/file/15948591

請先開千千靜聽並播放歌曲後再開上面的程式

如果程式執行正常,但是面板不正常,可能是ini檔語法有問題

如果程式執行不正常(可以開啟但是無法控制千千靜聽),那就是你跟本教學無緣了

我的測試環境為Xp sp3,千千靜聽5.5(Unicode)繁體版,.net framework 3.5

使用工具為Spy++,如果有心的話,任何播放器都可以用這套找出規則來哦!!!

如果有錯的地方還是有問題,請寄個信給我吧 ^^

--
JOY是攘夷!
JOY /
⊙ ⊙ ─ ─▂/
▄▄ \
  ◥       ̄ ̄
        \ > By RISE

--

All Comments

Enid avatarEnid2009-07-14
不推不行
Elma avatarElma2009-07-15
+1
Anonymous avatarAnonymous2009-07-19
有看有推
Steve avatarSteve2009-07-23
這世界還是有好人的
Ula avatarUla2009-07-23
大推!! 成功了
Anthony avatarAnthony2009-07-26
推啊~~
Harry avatarHarry2009-07-29
大推~~~
Odelette avatarOdelette2009-07-31
為什麼這麼棒的文章推文那麼少!
Gilbert avatarGilbert2009-08-01
受益良多~~~
Skylar DavisLinda avatarSkylar DavisLinda2009-08-05
有看有推,謝謝!
Leila avatarLeila2009-08-09
真的不推不行阿!!!!