程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 用C++Builder開發Windows屏保

用C++Builder開發Windows屏保

編輯:vc教程

摘要:本文通過一個具體的程序演示了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)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved