用VB實現拖放功能

發表于:2007-07-14來源:作者:點擊數: 標簽:
每次開機都面對同樣的墻紙,真讓人感到單調乏味。是不是可以在每次開機的時候, 都能給你一個意外的驚喜,自動地更換墻紙呢?筆者用 VB 5.0編了一個小程序,可以輕松 地解決這個問題。而其關鍵在于一個 WINDOWS API函數的使用,該函數的功能是用來設置 或詢問
  每次開機都面對同樣的墻紙,真讓人感到單調乏味。是不是可以在每次開機的時候,
都能給你一個意外的驚喜,自動地更換墻紙呢?筆者用VB 5.0編了一個小程序,可以輕松
地解決這個問題。而其關鍵在于一個WINDOWS API函數的使用,該函數的功能是用來設置
或詢問系統范圍參數的,其表達形式如下:
  Declare Function SystemParametersInfo Lib “user32"Alias “SystemParametersInfoA"(ByVal uAction As Long,ByVal uParam As Long, ByVal lpvParam As Any,ByVal fuWinIni As Long) As Long
  1、第一個參數uAction是用來動作設置的,該參數分GET和SET兩種行動,有約80種
不同的參數設置,其中設置墻紙的參數為SPI_SETDESKWALLPAPER=20。
  2、第二個參數uParam的設置是隨第一個參數的設置作相應調整的。這里置空值。
  3、第三個參數lpvParam是用來設置要更換上去的圖片路徑。該參數的設置也是隨第
一個參數作相應調整的。
  4、第四個參數fulWIni規定了在設置系統參數的時候,是否應更新用戶設置參數。
  可以是零(禁止更新),或下述任何一個參數:
  SPIF-UPDATEINIFILE:更新WIN.INI和注冊表中的用戶配置文件。
  SPIF-SENDWININICHANGE:倘若也設置了SPIF-UPDATEINIFILE,將一條
WM-WININICHANGE消息發給所有應用程序,否則沒有作用。這條消息告訴應用程序已經改
變了用戶配置設置。
  自動更換墻紙的具體實現如下:
  1、啟動VB,選擇STANDARD.EXE創建一個新項目,刪除FORM1的同時添加一個模塊(MODULE1)。
  2、在模塊代碼窗口填代碼如下:(假設墻紙文件都在D:JX目錄下按1-20的序號命
名,每次開機自動抽取墻紙)
  Private Const SPI_SETDESKWALLPAPER
  =20
  Private Const SPIF_SENDWININICHANGE
  =&H2
  Private Const SPIF_UPDATEINIFILE=&H1
  Private Declare FunctionSystemParametersInfo Lib "user32"Alias "SystemParametersInfoA"
(ByVal uAction As Long, ByVal uParam As Long,ByVal lpvParam As Any, ByValfuWinIni As Long)As Long
  Sub Main()
  Dim myvalue
  SPIFlags%=()
  Ramdomize
  myvalue=20*Rnd
  bmpfiles?=“D:JXx”+CStr(Int(1+myvalue))+“.bmp"
  ret&=SystemParametersInfo(SPI_SETDES
  KWALLPAPER,0,ByVal bmpfiles?,SPIFlags)
  End Sub
  3、在文件菜單下生成可執行文件,并把該可執行程序移入啟動目錄,便大功告成。
(特別注意在WIN98下運行時,活動桌面不能設置為按WEB頁查看。)

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97