程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 用VB設計更換屏幕保護的程序

用VB設計更換屏幕保護的程序

編輯:VB綜合教程
制作一個本企業的屏幕保護,在客戶運行本企業的應用軟件的時候,為客戶更改屏幕保護,是個廣告宣傳的好辦法。有很多朋友提出這個問題,現解答如下:
  要更換屏幕保護,首先得做好一個屏幕保護(scr文件),本例以工程1.scr這個文件為例。由於windows是把屏幕保護文件存放在system下,但記錄屏幕保護文件位置的文件卻是windows目錄下的system.ini,所以,首先需要找出系統的windows和system目錄的確切安裝位置。因此,可以分如下幾步進行:

  1、找到windows和system目錄的安裝位置

  2、把屏幕保護文件復制到system目錄下

  3、在system.ini中的[boot]中寫入:

  SCRNSAVE.EXE=C:WINDOWSSYSTEM工程1.SCR

  4、告訴系統切換屏幕保護。

  下面的例子成功地改變了屏幕保護,全部源代碼如下:

'得到windows目錄

PrivateDeclareFunctionGetWindowsDirectoryLib"kernel32"Alias"GetWindowsDirectoryA"(ByVallpBufferAsString,ByValnSizeAsLong)AsLong

'修改system.ini
  PrivateDeclareFunctionWritePrivateProfileStringLib"kernel32"Alias"WritePrivateProfileStringA"(ByVallpApplicationNameAsString,ByVallpKeyNameAsAny,ByVallpStringAsAny,ByVallplFileNameAsString)AsLong

'得到system目錄
  PrivateDeclareFunctionGetSystemDirectoryLib"kernel32"Alias"GetSystemDirectoryA"(ByVallpBufferAsString,ByValnSizeAsLong)AsLong

'設置屏幕保護
  PrivateConstSPI_SETSCREENSAVETIMEOUT=15
  PrivateConstSPI_SETSCREENSAVEACTIVE=17
  PrivateConstSPIF_UPDATEINIFILE=&H1
  PrivateConstSPIF_SENDWININICHANGE=&H2

PrivateDeclareFunctionSystemParametersInfoLib"user32"Alias"SystemParametersInfoA"(ByValuActionAsLong,ByValuParamAsLong,ByVallpvParamAsLong,ByValfuWinIniAsLong)AsLong

'啟動屏幕保護
  PrivateDeclareFunctionSendMessageLib"user32"Alias"SendMessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong

PrivateConstWM_SYSCOMMAND=&H112
  PrivateConstSC_SCREENSAVE=&HF140

PrivateSubForm_Load()
   '得到system目錄
   DimsSaveAsString,RetAsLong
   sSave=Space(255)
   Ret=GetSystemDirectory(sSave,255)
   sSave=Left$(sSave,Ret)
   '把屏保復制到系統目錄
   FileCopyApp.Path&"工程1.scr",sSave&"工程1.SCR"
   '得到windows目錄
   DimPathAsString,strSaveAsString
   strSave=String(250,Chr$(0))
   Path=Left$(strSave,GetWindowsDirectory(strSave,Len(strSave)))
   '修改system.ini
   DimrAsLong
   DiminiPathAsString
   iniPath$=Path "system.ini"
   r=WritePrivateProfileString("boot","SCRNSAVE.EXE",sSave&"工程1.SCR",iniPath)
   '設置時間間隔為1分鐘=60秒
   lRet=SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT,60,ByVal0&, 
  SPIF_UPDATEINIFILE SPIF_SENDWININICHANGE)
   '設置屏幕保護
   retval=SystemParametersInfo(SPI_SETSCREENSAVEACTIVE,True,0,0)
   '啟動屏幕保護
   DimresultAsLong
  result=SendMessage(Form1.hwnd,WM_SYSCOMMAND,SC_SCREENSAVE,0&)
  EndSub

  本例在vb6.0 win95下運行通過。

->

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