用C++Builder開發Windows屏保

來源:互聯網
上載者:User

摘要:本文通過一個具體的程式示範了Windows下的螢幕保護裝置程式的實現過程。

一. 引言

視窗系統下的螢幕保護裝置程式是一個基於命令列(Command Line)的應用程式。當屏保程式被調用時作業系統就用具體的命令列執行該程式。本文組織和處理了所有的命令列,包括“/p”,“/s”,“/c”,“/a”,其中“/p”表示讓屏保在預覽視窗中顯示;“/s”表示真正運行屏保;“/c”表示調用設定對話方塊;而“/a”表示調用密碼設定對話方塊(WinNT中無效)。本程式儘可能簡單地實現一個全功能的屏保,運行Windows的屏保設定程式時你既可以修改密碼(WinNT中無效)又可以設定圖片顯示的頻率並把頻率數值儲存到註冊表裡。當屏保運行時圖片以你設定的頻率改變顯示位置。筆者還留了個作業給讀者,請看圖1中的選擇圖片檔案夾這個項目,按下瀏覽按鈕可以設定圖片的路徑,筆者已經實現了瀏覽按鈕的功能並

把得到的路徑也儲存到註冊表中,並讓屏保啟動時讀picdir的值,picdir等於"no"時的代碼筆者已實現了,picdir不等於"no"時的代碼由讀者實現。也就是讓讀者實現一個能把picdir目錄裡的圖片輪流顯示的屏保程式。

二. 實現方法

首先介紹幾個API函數。

WinMain函數:

int WINAPI WinMain(
   HINSTANCE hInstance, // 當前執行個體控制代碼
   HINSTANCE hPrevInstance, // 前一個執行個體控制代碼
   LPSTR lpCmdLine, // 指向命令列參數的指標(本程式要利用的參數)
   int nCmdShow // 視窗的狀態
   );
GetWindowLong函數:得到指定視窗資訊的函數
   LONG GetWindowLong(
      HWND hWnd, //窗/口控制代碼
      int nIndex //指/定返回的資訊
     );
SetWindowLong函數:改變視窗屬性
   LONG SetWindowLong(
   HWND hWnd, //窗/口控制代碼
   int nIndex, // 指定要設定的值的資訊
   LONG dwNewLong // 新值
   );
SetParent函數:改變指定視窗的父視窗
   HWND SetParent(
   HWND hWndChild, //要/改變父表單的視窗控制代碼
   HWND hWndNewParent //新/的父表單的控制代碼
   );
GetClientRect函數:得到視窗的客戶區
   BOOL GetClientRect(
   HWND hWnd, // 視窗控制代碼
   LPRECT lpRect //RECT/結構的地址
   );
SetWindowPos函數:改變視窗的大小,位置,最上層視窗等
BOOL SetWindowPos(
HWND hWnd, // 視窗控制代碼
   HWND hWndInsertAfter, // 布置視窗順序的控制代碼(Z order)
   int X, // horizontal position
   int Y, // vertical position
   int cx, // width
   int cy, // height
   UINT uFlags // 視窗位置等標記
   );
SystemParametersInfo函數:訪問或設定系統級的參數
   BOOL SystemParametersInfo(
   UINT uiAction, // 指定要擷取或設定的系統參數
   UINT uiParam, // depends on action to be taken
   PVOID pvParam, // depends on action to be taken
   UINT fWinIni // 使用者設定檔是否改變標記
   );
ShowCursor函數:顯示或隱藏游標
int ShowCursor(
BOOL bShow // 滑鼠可見度標記 
   );
GetVersion函數:擷取系統的版本資訊
DWORD GetVersion(VOID)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.