2 回答

TA貢獻1871條經(jīng)驗 獲得超8個贊
允許獲取和設置數(shù)量眾多的windows系統(tǒng)參數(shù)
返回值Long,非零表示成功,零表示失敗。
參數(shù) 類型及說明
uAction Long,指定要設置的參數(shù)。參考uAction常數(shù)表
uParam Long,參考uAction常數(shù)表
lpvParam Any,按引用調(diào)用的Integer、Long和數(shù)據(jù)結構。對于String數(shù)據(jù),請用SystemParametersInfoByval函數(shù)。具體用法參考uAction常數(shù)表
fuWinIni Long,取決于不同的參數(shù)及操作系統(tǒng),隨同這個函數(shù)設置的用戶配置參數(shù)保存在win.ini或注冊表里,或同時保存在這兩個地方。這個參數(shù)規(guī)定了在設置系統(tǒng)參數(shù)的時候,是否應更新用戶設置參數(shù)。可以是零(禁止更新),或下述任何一個常數(shù):
SPIF_UPDATEINIFILE 更新win.ini和(或)注冊表中的用戶配置文件
SPIF_SENDWININICHANGE 倘若也設置了SPIF_UPDATEINIFILE,將一條WM_WININICHANGE消息發(fā)給所有應用程序。否則沒有作用。這調(diào)消息告訴應用程序已經(jīng)改變了用戶配置設置
uAction常數(shù)表:
SPI_GETACCESSTIMEOUT lpvParam是一個ACCESSTIMEOUT結構,其中要載入輔助訪問特性計時信息。在調(diào)用函數(shù)之前,uParam必須設為ACCESSTIMEOUT結構的大小
SPI_GETANIMATION lpvParam是一個ANIMATIONINFO結構,將在其中載入窗口最小化和恢復時的動畫信息。不能在NT 3.51中使用
SPI_GETBEEP lpvParam是一個Long型數(shù)據(jù),若打開了響鈴聲,則設為TRUE
SPI_GETBORDER lpvParam是一個Long型數(shù)據(jù),用于接收一個乘數(shù)(倍數(shù)),對大小可變的窗口的邊框尺寸進行控制
SPI_GETDEFAULTINPUTLANG lpvParam是一個Long型數(shù)據(jù),用于接收默認鍵盤布局的一個32位句柄。不能用于NT 3.51
SPI_GETDRAGFULLWINDOWS lpvParam是一個Long型數(shù)據(jù),如在整個窗口上拖動,就會設為TRUE。如果只拖出了一個矩形輪廓,則為FALSE。要求NT 4.0 或 Windows 95支持。其中,Windows 95必須有Plus!支持,或直接安裝Windows 95 OSR2
SPI_GETFASTTASKSWITCH lpvParam是一個Long型數(shù)據(jù),如允許快速任務切換,則為TRUE。在Windows 95 和 NT 4.0中肯定是TRUE
SPI_GETFILTERKEYS lpvParam是一個FILTERKEYS結構,用于裝載與鍵盤有關的輔助訪問特性信息
SPI_GETFONTSMOOTHING lpvParam是一個Long型數(shù)據(jù),如打開了邊緣修飾特性(讓字體更圓潤),則為TRUE。只適用于 NT 4.0 和帶 Plus! 支持的 Windows 95
SPI_GETGRIDGRANULARITY lpvParam是一個Long型數(shù)據(jù),會設為網(wǎng)格間隔尺寸值
SPI_GETHIGHCONTRAST lpvParam是一個HIGHCONTRAST結構,用于裝載與用戶顯示器有關的輔助訪問特性信息。僅適用于Win95
SPI_GETICONMETRICS lpvParam是一個ICONMETRICS結構,用于裝載與圖標比例及排列有關的信息。僅適用于Windows 95 及 NT 4.0
SPI_GETICONTITLELOGFONT lpvParam指向一個LOGFONT結構,設置內(nèi)容取決于圖標標題采用的字體
SPI_GETICONTITLEWRAP lpvParam是一個Long型數(shù)據(jù),如允許對圖標標題進行自動換行,則設為TRUE
SPI_GETKEYBOARDDELAY lpvParam是一個Long型數(shù)據(jù),設為鍵盤重復延時
SPI_GETKEYBOARDPREF lpvParam是一個Long型數(shù)據(jù),如用戶更喜歡用鍵盤而不是鼠標,則設為TRUE。如這個參數(shù)為真,windows會顯示出附加的鍵盤接口信息,只適用于win95
SPI_GETKEYBOARDSPEED lpvParam是一個Long型數(shù)據(jù),設為鍵盤的重復速率
SPI_GETMENUDROPALIGNMENT lpvParam是一個Long型數(shù)據(jù),若彈出式菜單左對齊(默認),則設為FALSE。否則為TRUE
SPI_GETMINIMIZEDMETRICS lpvParam是一個MINIMIZEDMETRICS結構,用于裝載與最小化窗口的比例及排列有關的信息。僅適用于win95
SPI_GETMOUSE lpvParam是三元素Long數(shù)組的頭一個條目,條目0設為用戶配置MouseThreshold1字段,條目1設為MouseThreshold2字段,條目2設為MouseSpeed
SPI_GETMOUSEKEYS lpvParam是一個MOUSEKEYS結構,要在其中裝載與鼠標有關的輔助訪問信息。不能在 NT 3.51中使用
SPI_GETNONCLIENTMETRICS lpvParam是一個NONCLIENTMETRICS結構,要在其中裝載有關字體和環(huán)境有關的信息;這些信息會在描繪窗口非客戶區(qū)域時涉及到,如邊框、標題等。只適用于win95
SPI_GETSCREENSAVEACTIVE lpvParam指向一個整數(shù);倘若屏幕保護程序處于活動狀態(tài),則設為TRUE;否則設為FALSE
SPI_GETSCREENSAVETIMEOUT lpvParam指向一個整數(shù);它設為屏幕保護延時(以秒為單位)
SPI_GETSERIALKEYS lpvParam是一個SERIALKEYS結構,用于裝載與輸入設備(用于模擬鍵盤輸入)有關的輔助訪問特性信息。只適用于win95
SPI_GETSHOWSOUNDS lpvParam是一個Long型數(shù)據(jù),倘若應用程序應該用可視線索來代替聲音,則設為TRUE。它的作用與GetSystemMetrics函數(shù)的SM_GETSHOWSOUNDS選項是相同的
SPI_GETSNAPTODEFBUTTON lpvParam是一個Long型數(shù)據(jù),倘若鼠標會自動移到新對話框的默認按鈕,則設為TRUE。只適用于NT 4.0
SPI_GETSOUNDSENTRY lpvParam是一個SOUNDSENTRY結構,用于裝載讓windows提供可視標志(而不是系統(tǒng)聲音)時涉及的輔助訪問特征信息。調(diào)用之前,必須將uParam設為SOUNDSENTRY結構的長度
SPI_GETSTICKYKEYS lpvParam是一個STICKYKEYS結構,用于裝載允許一名用戶順序按鍵(而不是同時按下)時涉及的輔助訪問特征信息。同時按鍵的例子包括Shift+, Ctrl+, Alt+ 等。調(diào)用之前,必須將uParam設為STICKYKEYS結構的長度
SPI_GETTOGGLEKEYS lpvParam是一個TOGGLEKEYS結構,要在其中裝載按下一個開關鍵(NumLock,CapsLock,ScrollLock)后播放聲音提示時涉及的輔助訪問特征信息。windows會用一個不同的聲音指出開或關狀態(tài)。調(diào)用之前,必須將uParam設為TOGGLEKEYS結構的長度
SPI_GETWORKAREA lpvParam是一個RECT結構,用于裝載屏幕的工作區(qū)
SPI_ICONHORIZONTALSPACING 如lpvParam為NULL,則uParam代表桌面圖標新的水平間隔距離,以像素為單位
SPI_ICONVERTICALSPACING 與SPI_ICONHORIZONTALSPACING相似,只不過指定圖標的垂直間距
SPI_LANGDRIVER lpvParam是一個字串,用于容納新的語言驅動程序文件的名稱
SPI_SETACCESSTIMEOUT 與SPI_GETACCESSTIMEOUT的參數(shù)相同
SPI_SETANIMATION 與SPI_GETANIMATION的參數(shù)相同
SPI_SETBEEP uParam為TRUE時打開響鈴,F(xiàn)ALSE關閉
SPI_SETBORDER uParam代表一個乘數(shù),用于控制尺寸可變的的窗口邊框的大小
SPI_SETDEFAULTINPUTLANG 與SPI_GETDEFAULTINPUTLANG的參數(shù)相同
SPI_SETDESKPATTERN 從注冊表或win.ini中強制窗口恢復當前的桌面方案
SPI_SETDESKWALLPAPER lpvParam代表一個字串,用于容納作為桌面墻紙使用的一個位圖文件的名稱
SPI_SETDOUBLECLICKTIME uParam代表連續(xù)兩次單擊被當作一次雙擊處理時需要間隔的時間(以毫秒為單位)
SPI_SETDOUBLECLKHEIGHT uParam代表新的雙擊高度,可參考GetSystemMetrics函數(shù)的注解
SPI_SETDOUBLECLKWIDTH uParam代表新的雙擊寬度,可參考GetSystemMetrics函數(shù)的注解
SPI_DRAGFULLWINDOWS uParam為TRUE時打開全窗口拖動,否則為FALSE。僅適用于win95
SPI_SETDRAGHEIGHT uParam代表一個矩形的高度(以像素為單位),用于決定拖動操作何時開始。只適用于win95
SPI_SETDRAGWIDTH uParam代表一個矩形的寬度(以像素為單位),用于決定拖動操作何時開始。只適用于win95
SPI_SETFASTTASKSWITCH uParam為TRUE時打開快速任務切換,F(xiàn)ALSE則關閉
SPI_FILTERKEYS 參數(shù)與 SPI_GETFILTERKEYS 相同
SPI_SETFONTSMOOTHING uParam為TRUE時打開字體修飾(圓潤)。只能在NT 4.0 和得到 Plus! 支持的 Win95(或 Windows 95 OSR2)中使用
SPI_SETGRIDGRANULARITY uParam代表新的網(wǎng)格間距
SPI_SETHIGHCONTRAST 參數(shù)與 SPI_GETHIGHCONTRAST 相同
SPI_SETICONMETRICS 參數(shù)與 SPI_GETICONMETRICS 相同
SPI_SETICONTITLELOGFONT lpvParam是一個LOGFONT結構,用于定義圖標標題采用的字體。uParam指定LOGFONT結構的大小。如兩者均為NULL,則采用系統(tǒng)啟動時定義的字體
SPI_SETICONTITLEWRAP uParam為TRUE時打開圖標標題自動換行
SPI_SETKEYBOARDDELAY uParam代表新的鍵盤重復延時
SPI_SETKEYBOARDPREF 若uParam為TRUE,表明用戶相比鍵盤和鼠標更喜歡用前者。參考SPI_GETKEYBOARDPREF
SPI_SETKEYBOARDSPEED uParam代表新的鍵盤重復速率
SPI_SETLANGTOGGLE 令窗口從系統(tǒng)注冊表中重新裝載熱鍵信息,以便在鍵盤布局之間交換
SPI_SETLOWPOWERACTIVE uParam為TRUE時允許節(jié)能屏幕保護程序模式。只適用于win95
SPI_SETLOWPOWERTIMEOUT uParam代表新的節(jié)能屏幕保護程序延時。只適用于win95
SPI_SETMENUDROPALIGNMENT uParam為FALSE時設置彈出菜單左對齊,TRUE則右對齊
SPI_SETMINIMIZEDMETRICS 參數(shù)與SPI_GETMINIMIZEDMETRICS一樣
SPI_SETMOUSE lpvParam是一個三元素整數(shù)數(shù)組的頭一個條目,其中包含了鼠標設置。參考SPI_GETMOUSE
SPI_SETMOUSEBUTTONSWAP uParam為TRUE時交換左右鼠標按鈕的功能;如果為FALSE,則使用原來的值
SPI_SETMOUSEKEYS 參數(shù)與SPI_GETMOUSEKEYS一樣
SPI_SETNONCLIENTMETRICS 參數(shù)與SPI_GETNONCLIENTMETRICS一樣
SPI_SETPENWINDOWS uParam為TRUE時載入筆窗口,F(xiàn)ALSE則卸載
SPI_SETPOWEROFFACTIVE uParam為TRUE時允許停電屏幕保護模式。只適用于win95
SPI_SETPOWEROFFTIMEOUT uParam代表新的停電屏幕保護程序延時。只適用于win95
SPI_SETSCREENREADER uParam為TRUE時表示正在運行一個屏幕閱讀程序。參考SPI_GETSCREENREADER
SPI_SETSCREENSAVEACTIVE uParam為TRUE時激活屏幕保護程序;FALSE表示禁止
SPI_SETSCREENSAVETIMEOUT uParam代表新的屏幕保護延遲時間,以秒為單位
SPI_SETSERIALKEYS 參數(shù)與 SPI_GETSERIALKEYS 相同
SPI_SETSHOWSOUNDS uParam為TRUE時允許窗口開啟聲音提示輔助訪問特性。參考SPI_GETSHOWSOUNDS
SPI_SETSNAPTODEFBUTTON 如鼠標應自動移到新對話框的默認按鈕,則uParam為TRUE。只適用于NT 4.0
SPI_SETSOUNDSENTRY 與 SPI_GETSOUNDSENTRY 相同
SPI_SETSTICKYKEYS 與 SPI_GETSTICKYKEYS 相同
SPI_SETTOGGLEKEYS 與 SPI_GETTOGGLEKEYS 相同
SPI_SETWORKAREA 與 SPI_GETWORKAREA 相同

TA貢獻1811條經(jīng)驗 獲得超6個贊
Declare 語句
用于在模塊級別中聲明對動態(tài)鏈接庫 (DLL) 中外部過程的引用。
語法 1
[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]
語法 2
[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]
Declare 語句的語法包含下面部分:
部分 描述
Public 可選的。用于聲明對所有模塊中的所有其它過程都可以使用的過程。
Private 可選的。用于聲明只能在包含該聲明的模塊中使用的過程。
Sub 可選的(但 Sub 或 Function 二者需選其一)。表示該過程沒有返回值。
Function 可選的(但 Sub 或 Function 二者需選其一)。表示該過程會返回一個可用于表達式的值。
name 必需的。任何合法的過程名。注意動態(tài)鏈接庫的入口處(entry points)區(qū)分大小寫。
Lib 必需的。指明包含所聲明過程的動態(tài)鏈接庫或代碼資源。所有聲明都需要 Lib 子句。
libname 必需的。包含所聲明的過程動態(tài)鏈接庫名或代碼資源名。
Alias 可選的。表示將被調(diào)用的過程在動態(tài)鏈接庫 (DLL) 中還有另外的名稱。當外部過程名與某個關鍵字重名時,就可以使用這個參數(shù)。當動態(tài)鏈接庫的過程與同一范圍內(nèi)的公用變量、常數(shù)或任何其它過程的名稱相同時,也可以使用 Alias。如果該動態(tài)鏈接庫過程中的某個字符不符合動態(tài)鏈接庫的命名約定時,也可以使用 Alias。
aliasname 可選的。動態(tài)鏈接庫或代碼資源中的過程名。如果首字符不是數(shù)字符號 (#),則 aliasname 是動態(tài)鏈接庫中該過程的入口處的名稱。如果首字符是 (#),則隨后的字符必須指定該過程的入口處的順序號。
arglist 可選的。代表調(diào)用該過程時需要傳遞的參數(shù)的變量表。
type 可選的。Function 過程返回值的數(shù)據(jù)類型;可以是 Byte、布爾、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持變長)或 Variant,用戶定義類型,或對象類型。
arglist 參數(shù)的語法以及語法各個部分如下:
[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type]
部分 描述
Optional 可選的。表示參數(shù)不是必需的。如果使用該選項,則 arglist 中的后續(xù)參數(shù)都必需是可選的,而且必須都使用 Optional 關鍵字聲明。如果使用了 ParamArray,則任何參數(shù)都不能使用 Optional。
ByVal 可選的。表示該參數(shù)按值傳遞。
ByRef 表示該參數(shù)按地址傳遞。 ByRef 是 Visual Basic 的缺省選項。
ParamArray 可選的。只用于 arglist 的最后一個參數(shù),表示最后的參數(shù)是一個 Variant 元素的 Optional 的數(shù)組。使用 ParamArray 關鍵字可以提供任意數(shù)目的參數(shù)。ParamArray 關鍵字不能與 ByVal、ByRef或 Optional 一起使用。
varname 必需的。代表傳給該過程的參數(shù)的變量名;遵循標準的變量命名約定。
( ) 對數(shù)組變量是必需的。指明 varname 是一個數(shù)組。
type 可選的。傳遞給該過程的參數(shù)的數(shù)據(jù)類型;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持變長)、Object、Variant、用戶自定義的類型或對象類型。
說明
對Function 過程而言,過程的數(shù)據(jù)類型決定其返回值的數(shù)據(jù)類型??梢栽?arglist 之后使用 As 子句來指定函數(shù)返回值的數(shù)據(jù)類型。在 arglist 中,可以使用 As 子句來指定任何傳給該過程的參數(shù)的數(shù)據(jù)類型。不單可以指定為任何標準數(shù)據(jù)類型,還可以在 arglist 中指定 As Any 來禁止類型檢查,從而允許將任意數(shù)據(jù)類型傳遞給該過程。
空圓括號表示該 Sub 或 Function 過程沒有參數(shù),且 Visual Basic 應確保不會傳遞任何參數(shù)。在下面的示例中,F(xiàn)irst 不帶任何參數(shù)。如果對 First 的調(diào)用中使用了參數(shù),就會產(chǎn)生錯誤:
Declare Sub First Lib "MyLib" ()
如果帶參數(shù)表,則每次調(diào)用該過程時都要檢查參數(shù)的個數(shù)和類型。在下面的示例中,F(xiàn)irst 有一個 Long 參數(shù):
Declare Sub First Lib "MyLib" (X As Long)
注意 在 Declare 語句的參數(shù)表中不能有定長的字符串;只有變長的字符串才能傳給過程。定長的字符串可以作為過程參數(shù)使用,但在傳遞前都要被轉換為變長的字符串。
注意 當所調(diào)用的外部過程需要一個值為 0 的字符串時,就要使用 vbNullString 常數(shù)。該常數(shù)與零長度字符串 ("") 是不相同的。
- 2 回答
- 0 關注
- 190 瀏覽
添加回答
舉報