' systemparametersinfo函式應用的乙個例子
'---------------------------------------------
'【vb宣告】
' private declare function systemparametersinfo lib "user32" alias "systemparametersinfoa" (byval uaction as long, byval uparam as long, byref lpvparam as any, byval fuwinini as long) as long
'【說明】
' 允許獲取和設定數量眾多的windows系統引數
'【返回值】
' long,非零表示成功,零表示失敗。會設定getlasterror
'【備註】
' 在呼叫這個函式之前,特別要注意將lpvparam引數定義成正確的資料型別
'【參數列】
' uaction -------- long,指定要設定的引數。參考uaction常數表
' uparam --------- long,參考uaction常數表
' lpvparam ------- any,按引用呼叫的integer、long和資料結構。對於string資料,請用systemparametersinfobyval函式。具體用法參考uaction常數表
' fuwinini ------- long,取決於不同的引數及作業系統,隨同這個函式設定的使用者配置引數儲存在win.ini或登錄檔裡,或同時儲存在這兩個地方。這個引數規定了在設定系統引數的時候,是否應更新使用者設定引數。可以是零(禁止更新),或下述任何乙個常數:
' spif_updateinifile
' 更新win.ini和(或)登錄檔中的使用者配置檔案
' spif_sendwininichange
' 倘若也設定了spif_updateinifile,將一條wm_wininichange訊息發給所有應用程式。否則沒有作用。這調訊息告訴應用程式已經改變了使用者配置設定
private 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
dim flag as boolean
'設定牆紙
const spi_setdeskwall***** = 20
'更新windows ini 檔案
const spif_updateinifile = &h1
const spif_sendwininichange = &h2
'當「新增牆紙」按鈕被按下時
private sub cmdadd_click()
'彈出通用對話方塊(開啟檔案)
***open.showopen
'如果選擇了牆紙則把的路徑新增到列表框中去
listfile.additem ***open.filename
end sub
'當「退出程式」按鈕被按下時,退出
private sub cmdexit_click()
unload me
end sub
'窗體載入時
private sub form_load()
'flag為布林型變數,標示列表框中是否有檔案存在
flag = false
'設定自動更換牆紙的間隔時間,單位為毫秒,可以改變
timer1.interval = 5000
end sub
'當經歷一定間隔時間,定時器timer被喚醒,執行指定任務
private sub timer1_timer()
'如果列表框中沒有,不進行任何操作
if listfile.listcount = 0 then
exit sub
'否則把標示flag置為true
else: flag = true
end if
'bmpfile為字串變數,儲存路徑
dim bmpfile as string
'如果flag為真
if flag then
'從列表框中讀取乙個檔案路徑並賦值給bmpfile
bmpfile = listfile.list(listfile.listindex)
'把牆紙更換為bmpfile所指,並修改ini檔案
systemparametersinfo spi_setdeskwall*****, 0, bmpfile, spif_updateinifile
'如果已經是列表框中最後一張,把listindex設為0即第一張
if listfile.listindex = listfile.listcount - 1 then
listfile.listindex = 0
'否則listindex加一,指向下一張
else
listfile.listindex = listfile.listindex + 1
end if
end if
end sub
'當「立即更換」按鈕被按下時
private sub cmdnow_click()
dim bmpfile as string
'如果列表框中沒有,不做任何操作
if listfile.listcount = 0 then end
'否則把選中的更換為牆紙
bmpfile = listfile.list(listfile.listindex)
systemparametersinfo spi_setdeskwall*****, 0, bmpfile, spif_updateinifile
end sub
vb實現桌面牆紙自動更換
看著大兒子的 突然想要將所有兒子的 都作為牆紙。而且打算每次開機都換一張 作為桌面。所以就查了查資料,做了乙個桌面的自動更新程式,只要將其快捷方式放入啟動組內就可以了。下面說說 吧 setkeyvalue和setvalueex是在網上抄來的對登錄檔進行操作的函式,最後乙個setdesktop的函式就...
解決android textview自動換行問題
今天忽然發現android專案中的文字排版參差不齊的情況非常嚴重,不得不想辦法解決一下。經過研究之後,終於找到了textview自動換行導致混亂的原因了 半形字元與全形字符混亂所致!一般情況下,我們輸入的數字 字母以及英文標點都是半形,所以佔位無法確定。它們與漢字的佔位大大的不同,由於這個原因,導致...
手機黑白屏怎麼換彩屏 手機外屏怎麼換
分步閱讀 手機外屏更換,具體型號要具體分析。但基本步驟相差無幾,下面以海信手機d2 m說明。更換外屏的過程跟現在市面上絕大多數手機都差不多,所以大家也可以借鑑借鑑。工具 原料 方法 步驟 1拿下後殼,擰下所有螺絲,真不少啊 2取下後殼,這是裡面,話說這做工真心不咋地 3繼續,拿下電池和主機板 4加熱...