?? 47.asp
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>VB 與 Windows API 講座(二) ─ 螢幕抓取與螢幕保護程式</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">
<META NAME="Generator" CONTENT="Microsoft Word 97">
<META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
<META NAME="Author" CONTENT="KJ Wang">
</HEAD>
<BODY TEXT="#202020" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
<P>VB 與 Windows API 講座(二) - </P>
<H1 ALIGN=CENTER>螢幕抓取與螢幕保護程式
<HR WIDTH="100%"></H1>
<DIV ALIGN=right><P>王國榮</P></DIV>
<P>「VB 沒有提供這樣的功能, 必須呼叫 Windows API」, 當筆者這樣回答讀者之後,
有些讀者會要求筆者介紹 Windows API 方面的書籍, 尤其是中文書, 但實際上,
目前市面上只看到一本原文書(ZD Press 出版的 Visual Basic 5.0 Programming
Guide to Win32 API), 中文書則未見過, 為什麼沒有 Windows API 方面的中文書呢?道理很簡單,
Windows API 對 VB 的學習者而言, 猶如山峰之顛, 能夠一路爬上來的人原本就十分有限,
而越往山頂, 人煙越稀少, 因此這樣的書寫出來, 銷售成績必然慘不忍睹, 也許有些讀者會覺得本土的作者實在很混,
只愿意寫簡單的書, 但撰寫深入的書籍, 費時費力費神而銷售成績又不好, 最終結果是這種不混的作者混不下去,
當過讀者而現在又是作者的筆者, 對於此一現象有時也頗感無奈。</P>
<P>不管怎樣, 筆者現在已經開始介紹 Windows API 了, 也許真的不想混了,
但混與不混不是筆者開啟本系列講座最擔心的事情, 筆者所擔心的是這樣的主題對讀者來說會不會太枯燥?會不會太艱澀?會不會像筆者當初研讀
Windows API 時, 越研讀心中的疑問越多, 就好像進入無底黑洞一樣?</P>
<P>為了避免以上的結果, 在內容的介紹上, 筆者會傾向於即學即用的 API, 短期內盡量避免深入
Windows 無底黑洞地帶, 而會先到那些有花有草地方。</P>
<P>本期筆者想引領您去的地方是:螢幕抓取程式與螢幕保護程式。</P>
<H2>
<HR WIDTH="100%">螢幕抓取程式簡介
<HR WIDTH="100%"></H2>
<P>如果不寫程式, 抓取螢幕圖像的方法是:按下 Print Screen 鍵, 然後開啟
Windows 的小畫家, 接著選取小畫家功能表的「編輯/貼上」, 即可將螢幕圖像復制到小畫家的繪圖區域中。 </P>
<P>如果寫程式呢?稍後筆者就會介紹, 介紹以前, 建議您先進入筆者的網站下載筆者所撰寫的螢幕抓取程式(CopyScr.vbp),
一來可瞭解程式的基本運作模式, 二來不必自己輸入程式, 此一程式執行後,
選取功能表的「我抓我抓我抓抓」, 即可將螢幕的圖像復制進來。</P>
<CENTER><P><A HREF="47-1.gif">圖-1「螢幕抓取程式」</A></P></CENTER>
<H2>
<HR WIDTH="100%">螢幕保護程式簡介
<HR WIDTH="100%"></H2>
<P>保護螢幕最簡單的方法就是不用時關掉它, 但有這種好習慣的人實在不多,
所以有人寫程式偵測滑鼠與鍵盤的輸入, 如果有一段時間沒有滑鼠或鍵盤的輸入,
便將電腦視為沒有人在使用, 而把螢幕顯示成黑色, 用以保護螢幕, 後來又有人覺得黑色太難看了,
就加了一點動畫, 慢慢地動畫越來越多也越有趣, 結果反倒成為螢幕保護程式不可或缺的功能,
而不再以保護螢幕為主了。</P>
<P>如何撰寫螢幕保護程式當然也是本期的重點, 同樣的, 介紹以前, 請進入筆者的網站下載筆者所撰寫的螢幕保護程式(saver.vbp),
此一程式預設的等待時間是 0.5 分鐘, 如果您等待 30 秒不操作鍵盤與滑鼠,
程式便會進入螢幕保護狀態, 您也可以設定等待的時間, 如圖-2, 或者直接按下「立刻測試」鈕以檢視螢幕保護程式的動畫。(特別注意:請務必以程式右上角的關閉鈕結束程式,
不要以 VB 的結束鈕來結束程式, 否則…, 玩看看, 就知道會有什麼後果) </P>
<CENTER><P><A HREF="47-2.gif">圖-2 「螢幕保護程式」的設定畫面</A></P></CENTER>
<P>瞭解螢幕抓取程式及螢幕保護程式的基本運作模式, 接下來讓筆者來說明相關的工作概念。</P>
<H2>
<HR WIDTH="100%">Windows 的繪圖觀念
<HR WIDTH="100%"></H2>
<P>VB 用來繪圖的方法有 Line(畫線及矩形)、Circle(畫圓)、PSet(畫點)、PaintPicture(描繪圖片)…等,
這些方法有一共通特點 ─ 只能描繪在表單(Form)視窗的「顯示區域」(Windows
稱之為 client rectangle), 想跨越顯示區域而把文字或圖形描繪在視窗標題區、功能表區、螢幕任意區域…,
想都別想, 而以螢幕保護程式為例, 則必須在螢幕任意位置繪圖。想在螢幕任意位置繪圖,
我們必須先瞭解 Windows 的繪圖觀念</P>
<H3 ALIGN=CENTER>繪圖之前, 先取 hDC
<HR WIDTH="50%"></H3>
<P>所有 Windows 的繪圖, 都必須先取得 hDC, 然後以 hDC 呼叫繪圖的 API。hDC
是 handle of DC(Device Context) 的縮寫, 有關 handle 的觀念筆者上一期已經︻雙敤敗
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -