關於 Rainmeter Skin -HUD.Vision - 桌布

Table of Contents

※ 引述《alphameric (綠豆湯瑪士)》之銘言:
: 其實我是要接續請教上一篇的問題,
: 不過在此之前,未免有灌水衝文章數的嫌疑,
: 所以還是先分享一下我的桌面好了。 http://0rz.tw/034W7
: 使用的軟體是大家都耳熟能詳的RockerDock還有Rainmeter,
: 就連桌布也是在板上爬文,跟板友分享得來。
: Rainmeter的skins比較值得一提,
: 我是使用HUD.Vision,
: 再加上板友dilya在#18rqHHom的分享改造之後,
: 整個煥然一新,我只能說真的太好、太強大了~ XD
: 然後接著延伸到我的問題...
: HUD.Vision其中的一套模組「calendar.vision」,
: 有甚麼辦法可以讓weekends表現不同的顏色嗎?
: 推 A876556:有圖的話好像比較好懂xd 10/27 12:50
: 謝謝A板大寶貴的建議,
: 在這邊我把問題轉換成圖檔來表示, http://0rz.tw/b74Xp
: 最後同樣附上原始的ini檔案, http://0rz.tw/764XA
: 希望板上強者能排解我的問題,
: 願意奉上500p聊表謝意。

首先要知道,Rainmeter的程式架構很糟糕

語法少就算了,組譯能力也相當差

很多指令不能互相搭配

因此造成撰寫上的困難


關於你要的功能,在別的環境下其實很簡單

算一下日期然後用迴圈和判別式跑一圈就出來了

問題這些東西Rainmeter統統都沒有

所以要麻煩一點全都寫給他,然後再自己引導



首先,Rainmeter的顯示參數一旦由程式碼指定就不能在執行中更改
而你要的字體紅色顯示正是屬於這一類
所以我們得先建立一整份1號~31號的紅色字體,然後預設成不顯示

再來,Rainmeter只能知道今天是星期幾,不知道昨天或明天是星期幾
更不用說整個月份的星期表了
所以在這就要用一點數學上的關係建立多項式
原理很簡單,依照今天的日期跟星期數字就能算出每個月的星期偏移量
也就是算得這個月的第一個週末是幾號
情況總共會有7個,所以我們就針對這7種情況建立顯示對照表
這樣只要傳入今天的日期及星期就能以算出來的偏移量查表找出這個月的星期表
查出來以後再針對相對的日期,將白字隱藏,呼叫顯示紅字即可

然後是日期>29的判斷
原本的判斷只有>就顯示、<就隱藏而已
但是加入週末功能後,>的部份就又分成有週末->顯示紅色、無->顯示白色
再加上原本的不顯示,總共有三種情況
Rainmeter的判別式相當笨,只能判斷大於小於等於而已
所以原本程式碼中兩種情況的判別式就不能用,要全部刪除
自己再寫一個狀況轉成參數的判別式,把三種狀況分別轉換成三種參數
最後將這個參數傳到新建立的判別式,以符合三種狀況的需求


然後就大工告成了


成品 http://img241.imageshack.us/img241/3784/calendarvisionwithweekeao5.jpg
程式碼下載:將上圖另存新檔,副檔名改rar,解壓縮即可得

右下也是我寫的小面板,CPU兩個核心會同時顯示工作量
上面則是網路的上下兩個傳輸速度
再上面....日期時間而已,只是在程式中把英文換成中文罷了



後記:雖說原理不難,可是過程很繁瑣,加上這環境又很差,所以工程才會顯得比功能大
另外,實現方法不是只有這一種,但這個寫法能確實保留CPU的使用率不被無謂的
排程佔用,而前提只有多佔用10K的記憶體而已

--

我不是禿頭,我只是額頭有點高!

--

All Comments

Tracy avatarTracy2008-11-03
還是多裝一個Rainleder比較簡單,也比較好改@_@
Bennie avatarBennie2008-11-08
Odelette avatarOdelette2008-11-09
rainlendar做的,字型間距顏色都可以自己在程式裡調整,比
在Rainmeter裡做出同樣效果簡單不少,耗的資源倒也還好
Hardy avatarHardy2008-11-12
推認真文!真感動,謝謝神人分享。 批幣奉上 <(_ _)>
Jacob avatarJacob2008-11-13
可是我不想灌兩個程式,想說既然meter涵蓋的範圍比較多
Ida avatarIda2008-11-13
就灌這個就好...懶人哲學 ^^"
Andy avatarAndy2008-11-16
版主m 版主m
Franklin avatarFranklin2008-11-17
太強了~"~