我們可以用 GraphEdit 來看視訊或音訊檔案,預設是用什麼 Splitter, Decoder, Filter
和什麼 Renderer 來播放的。除此之外,我們也可以替換想要用的元件。
GraphEdit 可以在灌完 Microsoft SDK 後的路徑下找到。
Note: 如果在 Insert Filters 時,想要展開 DirectShow Filters,卻發生 crash,應該是和
其他 filters 相衝,可以把 K-Lite 移除在試試。
除了 GraphEdit,K-Lite 的 GraphStudio 也是相當好用,更勝於 GraphEdit,會自動列
出符合該檔案格式的 filters 以供選擇。
GraphEdit 的使用教學:
http://crazyktv.pixnet.net/blog/category/1933869
2012年1月19日 星期四
[DEBUG] ProcessMonitor 2.96
ProcessMonitor 可以幫助開發者查看特定應用程式正在執行時,所存取
的 RegKey 和檔案等等,是個相當方便的工具。
下面的網誌作者做了簡略的介紹:
http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/08/18/977.aspx
的 RegKey 和檔案等等,是個相當方便的工具。
下面的網誌作者做了簡略的介紹:
http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/08/18/977.aspx
2012年1月10日 星期二
[Win32] 自訂 Button 的顏色
在 Win32 的視窗程式設計下,想要自訂 Button 的顏色或 Button 文字的顏色,
並非易事,必須搭配 WM_DRAWITEM 來繪製自訂 Button。
1. 首先,在 Button 的 Properties Page 上將 Owner Draw 屬性設成 True。
2. 接收到 WM_DRAWITEM 訊息時繪製 Button 的樣式和欲顯示的字串。
2.1 利用 DrawEdge() 可繪製 Button 被按下和沒按的樣子。
2.2 DrawText() 可畫出文字,避免使用 SetWindowText(), 因為其會再觸發
WM_DRAWITEM 很容易造成無窮回圈,而導致 Stack overflow。
並非易事,必須搭配 WM_DRAWITEM 來繪製自訂 Button。
1. 首先,在 Button 的 Properties Page 上將 Owner Draw 屬性設成 True。
2. 接收到 WM_DRAWITEM 訊息時繪製 Button 的樣式和欲顯示的字串。
2.1 利用 DrawEdge() 可繪製 Button 被按下和沒按的樣子。
2.2 DrawText() 可畫出文字,避免使用 SetWindowText(), 因為其會再觸發
WM_DRAWITEM 很容易造成無窮回圈,而導致 Stack overflow。
FindWindow V.S. FindwindowEx
Findwindow() 是用來找 top-level (像是父視) 的視窗,而要找同層的視窗或子視窗時
,就必須用 FindwindowEx(),例如 : 當 Dialog_A 與 Dialog_B 有共同父視窗時,
FindWindowEx(GetParent(handle_A), NULL, NULL, L"Dialog_B");
即可取得 Dialog_B 的 handle。
,就必須用 FindwindowEx(),例如 : 當 Dialog_A 與 Dialog_B 有共同父視窗時,
FindWindowEx(GetParent(handle_A), NULL, NULL, L"Dialog_B");
即可取得 Dialog_B 的 handle。
2012年1月4日 星期三
[MS-DOS] 寫 BAT 檔的常用指令
1. 註解 :
可在文字前加上 REM 或 :: 就代表該行為註解。
2. 變數 :
利用 SET 可自訂變數的值,如 SET="hello" 或 SET=1,需注意的是等號左邊不得
有空白,SET =1 是錯誤的語法。
其他用法 - 輸入 :
如同 C 的 getchar(),利用 /p 也可讓使用者輸入參數。
SET /p age=請輸入你的年紀:
其他用法 - 取代指定的字串 :
SET str=ababab
SET str2=%str:a=b%
str2 == bbbbbb
a 即為參照的字元
b 為更改後的字元
其他用法 - 取得指定位置的字串:
SET str=0123456
SET str2=%str:~1,3%
str2 == 12345
1 即為從第幾位元開始
3 為往後取3位
3. 條件判斷 :
如同 C 的 if-else,但在格式上有更多限制,若 if-else 同時出現則需伴隨著括號 "( )"
,如 : if condition ( statement ) else ( statement ),
但寫作下式會來的更好,
if condition (
statement
) else (
statement
)
在這裡要注意 if 和 "(" 必須在同行 還有 ")" 和 "(" 必須和 else 在同行,否則都是錯
誤的語法,寫成上式的好處是我們可以加上許多 statement,如下 :
if condition (
statement 1
statement 2
...
statement N
) else (
statement 1
statement 2
...
statement N
)
4. RENAME / REN :
重新命名檔案或資料夾,EX: RENAME "%DST%\my.dll" "my2.dll"
5. DEL / ERASE :
刪除檔案或資料夾,EX: DEL"%DST%\my.dll"
相關網站: http://www.computerhope.com/sethlp.htm
可在文字前加上 REM 或 :: 就代表該行為註解。
2. 變數 :
利用 SET 可自訂變數的值,如 SET="hello" 或 SET=1,需注意的是等號左邊不得
有空白,SET =1 是錯誤的語法。
其他用法 - 輸入 :
如同 C 的 getchar(),利用 /p 也可讓使用者輸入參數。
SET /p age=請輸入你的年紀:
其他用法 - 取代指定的字串 :
SET str=ababab
SET str2=%str:a=b%
str2 == bbbbbb
a 即為參照的字元
b 為更改後的字元
其他用法 - 取得指定位置的字串:
SET str=0123456
SET str2=%str:~1,3%
str2 == 12345
1 即為從第幾位元開始
3 為往後取3位
3. 條件判斷 :
如同 C 的 if-else,但在格式上有更多限制,若 if-else 同時出現則需伴隨著括號 "( )"
,如 : if condition ( statement ) else ( statement ),
但寫作下式會來的更好,
if condition (
statement
) else (
statement
)
在這裡要注意 if 和 "(" 必須在同行 還有 ")" 和 "(" 必須和 else 在同行,否則都是錯
誤的語法,寫成上式的好處是我們可以加上許多 statement,如下 :
if condition (
statement 1
statement 2
...
statement N
) else (
statement 1
statement 2
...
statement N
)
4. RENAME / REN :
重新命名檔案或資料夾,EX: RENAME "%DST%\my.dll" "my2.dll"
5. DEL / ERASE :
刪除檔案或資料夾,EX: DEL"%DST%\my.dll"
相關網站: http://www.computerhope.com/sethlp.htm
訂閱:
文章 (Atom)