經過了一天的試驗,很神奇的發現在主視窗左邊的廣告列
有重新恢復的現象,這怎麼可以呢?因此又繼續Google...
Google不負苦心人,很快的又找到解法了,方法如下:
1. 由主視窗中選擇 [工具] -> [選項]
2. 選擇[資訊標籤] -> [隱藏資訊標籤] -> [確定]
很快的就可以跟牛爾說掰掰了...
參考文章:
[1] http://briian.com/?p=1462
2008年1月30日 星期三
2008年1月29日 星期二
Windows Live Messenger 8 移除廣告和搜尋列
之前在實驗室的時候,同學曾經給我一個修改MSN Messenger的
Patch,不過自從畢業了之後就一直找不到,但是實在不喜歡MSN上
的廣告列,所以只好勞動手指到Google上去找Solution了 :)
很幸運的,在Google上很容易就找到我所需要的-Resource Hacker,
以及相關的設定,而且雖然我是以版本8.1.0.0178為目標,但是用這個
方式,只要知道需要修改的位置及內容,不需要擔心MSN是否改版。
設定步驟如下:
1. 下載工具 -> Resource Hacker
2. 關閉 Windows Live Messenger。
3. 執行 Resource Hacker 並開啟檔案 msgsres.dll。
檔案路徑為 "C:\Program Files\MSN Messenger\msgsres.dll";
如果檔案不存在,請使用搜尋的功能找到這個檔案。
4. 找尋需修改的節點內容
在Resource Hacker程式左邊子視窗中的節點樹裡,
依序找到節點 4004 -> 923 -> 1033
5. 移除主視窗的廣告
在右邊的原始碼中尋找字串"ID=Atom(SSConstrainer)"
(按 CTRL + F 尋找),
將同列中的資料 layoutpos=top 變更為 layoutpos=none。
6. 移除對話視窗的廣告
在右邊的原始碼中尋找字串"ID=Atom(adbannercont)"
(按 CTRL + F 尋找),
並將此列 "< element id=atom(adbannercont) layout=filllayout() >"
改成 "< element layoutpos=none >"
7. 移除主視窗的搜尋列
在右邊的原始碼中尋找字串"ID=Atom(idSearchContainer)" ,
並將上面三行所有的 layoutpos=xxxx 改成 layoutpos=none。
參考文章:
[1] http://chitsaou.wordpress.com/2006/08/13/wlm8-noad/
[2] http://www.wretch.cc/blog/trackback.php?blog_id=robertvmp&article_id=5301911
[3] Resource Hacker http://www.angusj.com/resourcehacker/
Patch,不過自從畢業了之後就一直找不到,但是實在不喜歡MSN上
的廣告列,所以只好勞動手指到Google上去找Solution了 :)
很幸運的,在Google上很容易就找到我所需要的-Resource Hacker,
以及相關的設定,而且雖然我是以版本8.1.0.0178為目標,但是用這個
方式,只要知道需要修改的位置及內容,不需要擔心MSN是否改版。
設定步驟如下:
1. 下載工具 -> Resource Hacker
2. 關閉 Windows Live Messenger。
3. 執行 Resource Hacker 並開啟檔案 msgsres.dll。
檔案路徑為 "C:\Program Files\MSN Messenger\msgsres.dll";
如果檔案不存在,請使用搜尋的功能找到這個檔案。
4. 找尋需修改的節點內容
在Resource Hacker程式左邊子視窗中的節點樹裡,
依序找到節點 4004 -> 923 -> 1033
5. 移除主視窗的廣告
在右邊的原始碼中尋找字串"ID=Atom(SSConstrainer)"
(按 CTRL + F 尋找),
將同列中的資料 layoutpos=top 變更為 layoutpos=none。
6. 移除對話視窗的廣告
在右邊的原始碼中尋找字串"ID=Atom(adbannercont)"
(按 CTRL + F 尋找),
並將此列 "< element id=atom(adbannercont) layout=filllayout() >"
改成 "< element layoutpos=none >"
7. 移除主視窗的搜尋列
在右邊的原始碼中尋找字串"ID=Atom(idSearchContainer)" ,
並將上面三行所有的 layoutpos=xxxx 改成 layoutpos=none。
參考文章:
[1] http://chitsaou.wordpress.com/2006/08/13/wlm8-noad/
[2] http://www.wretch.cc/blog/trackback.php?blog_id=robertvmp&article_id=5301911
[3] Resource Hacker http://www.angusj.com/resourcehacker/
2008年1月28日 星期一
Windows Mobile AKU
在許多嵌入式編譯環境的安裝上,都會要求要安裝某個版本的AKU,
AKU 是什麼呢?經過了Google幾個網頁後,我大致上瞭解了AKU是
什麼東西。
類似於Microsoft在Windows XP推出後,會依序的release出SP1,SP2...
來修正 OS的Bug,或是補充新功能;而在Windows Mobile上,AKU
(Adaptation Kit or Adaptation Kit Update)就類似於Fix或Patch的角
色,同時他在release時配上一個版本號,例如AKU_0.7.2 Build
18525 或 AKU_1.1.0 Build 19528,前三個數字為其版本號(0.7.2/
1.1.0),版本號越 大的越新,例如後者會比前者新或是 可從關於畫面
中得到關於版本的資訊 (in 開始/設定/系統)
(此圖片由網路取得)
AKU 是什麼呢?經過了Google幾個網頁後,我大致上瞭解了AKU是
什麼東西。
類似於Microsoft在Windows XP推出後,會依序的release出SP1,SP2...
來修正 OS的Bug,或是補充新功能;而在Windows Mobile上,AKU
(Adaptation Kit or Adaptation Kit Update)就類似於Fix或Patch的角
色,同時他在release時配上一個版本號,例如AKU_0.7.2 Build
18525 或 AKU_1.1.0 Build 19528,前三個數字為其版本號(0.7.2/
1.1.0),版本號越 大的越新,例如後者會比前者新或是 可從關於畫面
中得到關於版本的資訊 (in 開始/設定/系統)
(此圖片由網路取得)
2008年1月24日 星期四
WinCE Driver DLL 的 dpCurSettings
在Wince Driver的Source Code中,都會出現一個Global variable-
dpCurSettings,在Google上看到Travis Hobrla 的一篇文章
"Debug messages and debug zones in Windows CE",才知道
dpCurSettings是用來作為Windows CE上Debug Message
(DEBUGMSG)的設定參數。
DEBUGMSG這個Macro宣告在usbfn.h這個header file中,
(PS:DEBUGZONE的宣告在DbgApi.h)除此之外,與DEBUGMSG
有關的設定有三個:
(1)定義各個 Debug Zone 在每個module中,一般來說可有16個Debug
Zone,在定義Debug Zone的時候,同時給予其對應的編號例如:
#ifdef DEBUG
#define ZONE_ERROR DEBUGZONE(0)
#define ZONE_WARNING DEBUGZONE(1)
// ... etc.
#endif
(2)宣告一個名為 dbCurSettings 的 DBGPARAM Structure
例如:
DBGPARAM dpCurSettings =
{
TEXT("PCIBUS"),
{ TEXT("Errors"), TEXT("Warnings"),
TEXT("Functions"), TEXT("Initialization"),
TEXT("Enumeration"), TEXT("Load Order"),
TEXT("Resource"), TEXT("Undefined"),
TEXT("Undefined"), TEXT("Undefined"),
TEXT("Undefined"), TEXT("Undefined"),
TEXT("Undefined"), TEXT("Undefined"),
TEXT("Undefined"), TEXT("Undefined")
},
DBG_ERROR | DBG_WARNING
};
這個例子裡,一個名為PCIBUS的module(driver)具有7個Debug
Zone, 分別為"Errors", "Warnings", "Functions", "Initialization",
"Enumeration", "Load Order", "Resource", 最後的
DBG_ERROR DBG_WARNING代表 Error 與 Waring兩個Zone
預設為Active(其他送到Inactiver 的Debug Zone 的Message將會被
丟棄)
關於設定active by default的Debug Zone還有另一種方式:透過設定
一個 DWORD的mask - ulZoneMask, 例如上面的例子中要透過設定
ulZoneMask 指定Default Zone,則可透過下面的設定:
dpCurSettings.ulZoneMask = 0x3;
另外,如果要開啟所有可開的DebugZone,可以設定
ulZoneMask = 0xFFFF
或是
DBGPARAM dpCurSettings =
{
//...
0xFFFF
}
在第一點的說明中,每個module可有16個Debug Zone,並透過16個
bit作設定,其中每個bit代表一個array index,表示Debug zone的
output status(on/off),例如“Errors”是第一個debug zone,所以
DBG_ERROR為1(將第一個bit設為 1),同理DBG_WARNING為2,
因此ulZoneMask為3 (PS:所以DBG_ERROR DBG_WARNING也可用
0x3代替)
(3)呼叫DEBUGREGISTER(dllInstance)
例如:
DllEntry (HANDLE hinstDLL, DWORD Op, LPVOID lpvReserved)
{
switch (Op)
{
//......
case DLL_PROCESS_ATTACH :
DEBUGREGISTER((HINSTANCE)hinstDLL);
break;
//......
}
}
在使用DEBUGMSG上,原型的宣告中
#define FUNCTION_ENTER_MSG() DEBUGMSG(ZONE_FUNCTION, \
(_T("%s ++\r\n"), pszFname))
因此DEBUGMSG可具有三個參數(也可以是兩個),例如:
DEBUGMSG(ZONE_Enumeration, (L"PCIBUS!PCIRegClean %d \
devices to check\r\n", NumDevKeys));
或是
DEBUGMSG(ZONE_Initialization, (L“I really like blogs.\r\n”));
dpCurSettings,在Google上看到Travis Hobrla 的一篇文章
"Debug messages and debug zones in Windows CE",才知道
dpCurSettings是用來作為Windows CE上Debug Message
(DEBUGMSG)的設定參數。
DEBUGMSG這個Macro宣告在usbfn.h這個header file中,
(PS:DEBUGZONE的宣告在DbgApi.h)除此之外,與DEBUGMSG
有關的設定有三個:
(1)定義各個 Debug Zone 在每個module中,一般來說可有16個Debug
Zone,在定義Debug Zone的時候,同時給予其對應的編號例如:
#ifdef DEBUG
#define ZONE_ERROR DEBUGZONE(0)
#define ZONE_WARNING DEBUGZONE(1)
// ... etc.
#endif
(2)宣告一個名為 dbCurSettings 的 DBGPARAM Structure
例如:
DBGPARAM dpCurSettings =
{
TEXT("PCIBUS"),
{ TEXT("Errors"), TEXT("Warnings"),
TEXT("Functions"), TEXT("Initialization"),
TEXT("Enumeration"), TEXT("Load Order"),
TEXT("Resource"), TEXT("Undefined"),
TEXT("Undefined"), TEXT("Undefined"),
TEXT("Undefined"), TEXT("Undefined"),
TEXT("Undefined"), TEXT("Undefined"),
TEXT("Undefined"), TEXT("Undefined")
},
DBG_ERROR | DBG_WARNING
};
這個例子裡,一個名為PCIBUS的module(driver)具有7個Debug
Zone, 分別為"Errors", "Warnings", "Functions", "Initialization",
"Enumeration", "Load Order", "Resource", 最後的
DBG_ERROR DBG_WARNING代表 Error 與 Waring兩個Zone
預設為Active(其他送到Inactiver 的Debug Zone 的Message將會被
丟棄)
關於設定active by default的Debug Zone還有另一種方式:透過設定
一個 DWORD的mask - ulZoneMask, 例如上面的例子中要透過設定
ulZoneMask 指定Default Zone,則可透過下面的設定:
dpCurSettings.ulZoneMask = 0x3;
另外,如果要開啟所有可開的DebugZone,可以設定
ulZoneMask = 0xFFFF
或是
DBGPARAM dpCurSettings =
{
//...
0xFFFF
}
在第一點的說明中,每個module可有16個Debug Zone,並透過16個
bit作設定,其中每個bit代表一個array index,表示Debug zone的
output status(on/off),例如“Errors”是第一個debug zone,所以
DBG_ERROR為1(將第一個bit設為 1),同理DBG_WARNING為2,
因此ulZoneMask為3 (PS:所以DBG_ERROR DBG_WARNING也可用
0x3代替)
(3)呼叫DEBUGREGISTER(dllInstance)
例如:
DllEntry (HANDLE hinstDLL, DWORD Op, LPVOID lpvReserved)
{
switch (Op)
{
//......
case DLL_PROCESS_ATTACH :
DEBUGREGISTER((HINSTANCE)hinstDLL);
break;
//......
}
}
在使用DEBUGMSG上,原型的宣告中
#define FUNCTION_ENTER_MSG() DEBUGMSG(ZONE_FUNCTION, \
(_T("%s ++\r\n"), pszFname))
因此DEBUGMSG可具有三個參數(也可以是兩個),例如:
DEBUGMSG(ZONE_Enumeration, (L"PCIBUS!PCIRegClean %d \
devices to check\r\n", NumDevKeys));
或是
DEBUGMSG(ZONE_Initialization, (L“I really like blogs.\r\n”));
訂閱:
文章 (Atom)