SystemParametersinfo

SystemParametersinfo

SystemParametersInfo(Info中是i大寫)函式查詢或設定系統級參數。函式原型是BOOL SystemParametersInfo。該函式也可以在設定參數中更新用戶配置檔案,這個函式還有很多其它功能,比如獲取桌面工作區的大小。

套用SystemParametersInfo函式可以獲取和設定數量眾多的windows系統參數。

基本介紹

  • 外文名:SystemParametersInfo
  • 函式原型:BOOL SystemParametersInfo
  • 參數:uiAction
函式原型,參數,

函式原型

BOOL SystemParametersInfo(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinlni);

參數

uiAction:該參數指定要查詢或設定的系統級參數。其取值如下;
SPI_GETACCESSTIMEOUT:檢索與可訪問特性相關聯的逾時段的信息,PvParam參數必須指向某個ACCESSTIMEOUT結構以獲得信息,並將該結構中的cbSjze成員和ulParam參數的值設為sizeof(ACCESSTIMEOUT)。
SPI_GETACTIVEWINDOWTRACKING:用於Windows 98和Windows NT 5.0及以後的版本。它表示是否打開活動視窗跟蹤(激活該視窗時滑鼠置為開狀態),pvParam參數必須指向一個BOOL型變數(打開時接收值為TRUE,關閉時為FALSE)。
SPI_GETACTIVEWNDTRKZORDER;用於Windows 98和Windows NT 5.0及以後版本。它表示通過活動視窗跟蹤開關激活的視窗是否要置於最頂層。pvParam參數必須指向一個BOOL型變數,如果要置於頂層,那么該變數的值為TRUE,否則為FALSE。
SPI_GETACTIVEWNDTRKTIMEOUT:用於Windows 98和 Windows NT 5.0及以後版本。它指示活動視窗跟蹤延遲量,單位為毫秒。pvParam參數必須指向DWORD類型變數,以接收時間量。
SPI_GETANIMATION:檢索與用戶活動有關的動畫效果。pvParam參數必須指向ANIMATIOINFO結構以接收信息。並將該結構的cbSize成員和ulParam參數置為sizeof(ANIMATIONINFO)。
SPI_GETBEEP:表示警告蜂鳴器是否是打開的。pvParam參數必須指向一個BOOL類型變數,如果蜂鳴器處於打開狀態,那么該變數的值為TRUE,否則為FALSE。
SpI_GETBORDER:檢索決定視窗邊界放大寬度的邊界放大因子。pvParam參數必須指向一個整型變數以接收該值。
SPI_GETDEFAULTINPUTLANG:返回用於系統預設輸入語言的鍵盤布局句柄。pvParam參數必須指向一個32位變數,以接收該值。
SPI_GETCOMBOBOXANIMATION:用於Windows 98和Windows NT 5.0及以後版本。它表示用於組合櫃的動打開效果是否允許。pvParam參數必須指向一個BOOL變數,如果允許,那么變數返回值TRUE,否則為FALSE。
SPI_GETDRAGFULLWINDOWS:確定是否允許拖拉到最大視窗。pvParam參數必須指向BOOL變數,如果允許,返回值為TRUE,否則為FALSE。對於Windows 95系統,該標誌只有在安裝了Windows plus!才支持。
SPI_GETFASTTASKSWITCH:該標誌已不用!以前版本的系統使用該標誌來確定是否允許Alt+Tab快速任務切換。對於Windows 95、Windows 98和Windows NT 4.0版而言,快速任務切換通常是允許的。
SPI_GETFILTERKEYS:檢索有關FILTERKEYS(過濾鍵)易用特徵信息。pvParam參數必須指向接收信息的filterkeys結構,並將該結構中的cbSze成員和ulParam參數的值設為sizeof(FILTERKEYS)。
SPI_GETFONTSMOOTHING:表示字型平滑處理特徵是否允許。該特徵使用字型保真技術,通過在不同灰度級上塗上像素使字型曲線顯得更加平滑。參數pvParam必須指向BOOL類型變數,如果該特徵被允許,那么返回值為TRUE,否則為FALSE。對於Windows 95系統,該標誌只有在安裝了Windows plusl才支持。
SPI_GETFOREGROUNDFLASHCOUNT:用於Windows 98和Windows NT 5.0及以後版本。它表示在拒絕前台切換申請時系統閃爍任務條按鈕的次數。參數pvParam必須指向DWORD變數,以接收該值。
SPI_GETFOREGROUNDLOCKTIMEOUT:用於Windows NT 5.O及以後版本或Windows 98。它表示在系統禁止應用程式強行將自己進入前台期間的時間量,單位為毫秒.參數pvParam必須指向DWORD變數以接收時間值。
SPI_GETGRADIENTCAPTIONS:用於Windows 98和Windows NT 5.0及以後版本。它表示是否允許有用於視窗標題欄的傾斜效果。參數pvParam必須指向BOOL變數,其值在允許時為TRUE,禁止時為FALSE。
SPL_GETGRIDGRANULARITY:檢索桌面大小格線的當前顆粒度值。參數pVparam必須指向一個整型變數以接收該值。
SPI_GETHIGHCONTRAST:用於Windows 95及更高版本、Windows NT 5.0及以後版本。檢索與HighContrast易用特徵有關的信息。pvParam參數必須指向用於接收該信息的HIGHCONTRAST結構,該結構中的。cbSize成員和ulParam參數的值應設為sizeof(NIGHCONTRAST)。
SPI_GETICONMETRICS:檢索與圖示有關的度量信息。參數pvParam必須指向一個ICONMETRICS結構以接收信息。該結構中的。cbSize成員和ulParam參數的值應設為sizeof(ICONMETRICS)。
SPI_GETICONTITLELOGFONT:檢索當前圖示標題字型的邏輯字型信息。參數ulParam規定了logfont結構的大小,參數pvParam必須指向要填充的Iogfont結構。
SPI_GETICONTITLEWRAP:確定是否允許圖示標題環繞。pvParam參數必須指向一個BOOL類型變數,該變數的值在允許時為TRUE,否則為FALSE。
SPI_GETKEYBOARDDELAY:檢索鍵盤重複擊鍵延遲設定,該值範圍從0(大約25Oms延遲)到3(大約1秒延遲)。與該範圍里每一個值相關的實際延遲時間可能與硬體有關。pvParam參數必須指向一個整型變數以接收設定值。
SPI_GETKEYBOARDPREF:用於Windows 95及以後版本。Windows NT 5.O及以後版本。它確定用戶是否依賴鍵盤而非滑鼠,是否要求應用程式顯示鍵盤接口,以免隱藏。pvParam參數必須指向一個BOOL類型變數,如果用戶依賴鍵盤,那么該變數取值為TRUE,否則為FALSE。
SPI_GETKEYBOARDSPEED:檢索鍵盤重複擊鍵速度設定情況,該值範圍從0(大約30次/秒)至31(大約25次/秒)。實際的擊鍵速率與硬體有關,而且變動的線性幅度有可能高達20%。參數pvParam必須指向DWORD變數以接收設定值。
SPI_GETLISTBOXSMOOTHSCROLLING:用於Windows 98和Windows NT 5.0及以後版本。表示是否允許有列表欄的平滑滾動效果。pvParam參數必須指向BOOL變數,如果允許,則該值為TRUE,否則為FALSE。
SPI_GETLDWPOWERACTIVE:確定是否允許螢幕保護的低電壓狀態。如果允許,那么指向BOOL變數的pvParam參數會接收到TRUE值,否則為FALSE。對於Windows 98,該標誌對16位和32位應用程式都支持。
對於Windows 95,該標誌只支持16位應用程式。對於Windows NT,在Windows NT 5.0及以後版本中支持32位應用程式,對16位應用程式則不支持。
SPI_GETLOWPOWERTIMEOUT:檢索用於螢幕保護的低電壓狀態逾時值。pvParam參數必須指向一個整型變數,以接收該值。對於Windows 98該標誌支持16位和32位應用程式。對於Windows95,該標誌只支持16位應用程式。對於Windows NT,該標誌支持Windows NT 5.0及以後版本上的32位應用程式。不支持16位應用程式。
SPI_GETMENUDROPALIGNMENT。確定彈出式選單相對於相應的選單條項是左對齊,還是右對齊、參數pvParam必須指向一個BOOL類型變數,如果是左對齊。那么該變數值為TRUE,否則為FALSE。SPI_GETMINIMIZEDMETRICS:檢索最小化視窗有關的度量數據信息。參數pvParam必須指向MINIMIZEDMETRCS結構,以接收信息。該結構中的cbSize和ulParam參數的值應設為sizeof(MINIMIZEDMETRICS)。
SPI_GETMOUSE:檢索滑鼠的2個閾值和加速特性。pvParam參數必須指向一個長度為3的整型數組,分別存儲此值。
SPI_GETMOUSEHOVERHEGHT:用於Windows NT 4.0及以後版本或Windows 98。獲得在TrackMouseEvent事件中,為產生WM_MOUSEOVER訊息而滑鼠指針必須停留的矩形框的高度,以像素為單位。參數pvParam必須指向一個UINT變數以接收這個高度值。
SPI_GETMOUSEHOVERTIME:用於Windows NT 4.0及以後版本、Windows 98,獲得在TrackMouseEvent事件中,為產生WM_MOUSEOVER訊息而滑鼠指針必須停留在矩形框內的時間,單位為毫秒。參數pvParam必須指向一個UINT變數以接收該時間值。
SPI_GETMOUSEHOVERWIDTH:用於Windows NT 4.0及以後版本、Windows 98。獲得在TrackMouseEvent事件中,為產生WM_MOUSEOVER訊息而滑鼠指針必須停留的矩形框的寬度,以像素為單位。參數pvParam必須指向一個UINT變數以接收這個寬度值。
SPI_GETMOUSEKEYS:檢索與MOUSEKEYS易用特徵有關的信息,pvParam參數必須指向某個MOUSEKEYS結構,以獲取信息。應將結構的cbSize成員和ulParam參數設定為sizeof(MOUSEKEYS)。
SPI_GETMOUSESPEED:用於Windows NT 5.0及以後版本、Windows 98。檢索當前滑鼠速度。滑鼠速度決定了滑鼠移動多少距離,滑鼠的指針將移動多遠。參數pvParam指向一個整型變數,該變數接收1(最慢)至20(最快)之間的數值。預設值為們10。這個值可以由最終用戶使用滑鼠控制臺應用程式或使用調用了SPI_SETMOUSESPEED的應用程式來設定。
SPI_GETMOUSETRAILS:用於WpvParam必須指向一個BOOL類型變數,如果是左對齊。那么該變數值為TRUE,否則為FALSE。
SPI_GETMINIMIZEDMETRICS:檢索最小化視窗有關的度量數據信息。參數pvParam必須指向MINIMIZEDMETRCS結構,以接收信息。該結構中的cbSize和ulParam參數的值應設為sizeof(MINIMIZEDMETRICS)。
SPI_GETMOUSE:檢索滑鼠的2個閾值和加速特性。pvParam參數必須指向一個長度為3的整型數組,分別存儲此值。
SPI_GETMOUSEHOVERHEGHT:用於Windows NT 4.0及以後版本或Windows 98。獲得在TrackMouseEvent事件中,為產生WM_MOUSEOVER訊息而滑鼠指針必須停留的矩形框的高度,以像素為單位。參數pvParam必須指向一個UINT變數以接收這個高度值。
SPI_GETMOUSEHOVERTIME:用於Windows NT 4.0及以後版本、Windows 98,獲得在TrackMouseEvent事件中,為產生WM_MOUSEOVER訊息而滑鼠指針必須停留在矩形框內的時間,單位為毫秒。參數pvParam必須指向一個UINT變數以接收該時間值。
SPI_GETMOUSEHOVERWIDTH:用於Windows NT 4.0及以後版本、Windows 98。獲得在TrackMouseEvent事件中,為產生WM_MOUSEOVER訊息而滑鼠指針必須停留的矩形框的寬度,以像素為單位。參數pvParam必須指向一個UINT變數以接收這個寬度值。
SPI_GETMOUSEKEYS:檢索與MOUSEKEYS易用特徵有關的信息,pvParam參數必須指向某個MOUSEKEYS結構,以獲取信息。應將結構的cbSize成員和ulParam參數設定為sizeof(MOUSEKEYS)。SPI_GETMOUSESPEED:用於Windows NT 5.0及以後版本、Windows 98。檢索當前滑鼠速度。滑鼠速度決定了滑鼠移動多少距離,滑鼠的指針將移動多遠。參數pvParam指向一個整型變數,該變數接收1(最慢)至20(最快)之間的數值。預設值為們10。這個值可以由最終用戶使用滑鼠控制臺應用程式或使用調用了SPI_SETMOUSESPEED的應用程式來設定。
SPI_GETMOUSETRAILS:用於Windows 95及更高版本。它用來表示是否允許MouseTrails(滑鼠軌跡)。該特徵通過簡單地顯示滑鼠軌跡並迅速擦除它們來改善滑鼠的可見性。參數prParam必須指向一個整型變數來接收該值。如果這個值為0或1,那么表示禁止該特徵。如果該值大於1,則說明該特徵被允許,並且該值表示在滑鼠軌跡上畫出的游標數目。參數ulParam不用。
SPI_GETNONCLIENTMETRICS:檢索與非最小化視窗的非客戶區有關的度量信息。參數pvParam必須指向NONCLIENTMETRICS結構,以便接收相應值。該結構的。cbSize成員與ulParam參數值應設為sizeof(NONCLIENTMETRICS)。對於Windows 98,該標誌支持16位和32位應用程式。對於Windows 95,該標誌只支持16位應用程式。對於Windows NT該標誌在NT 5.0及以後版本中支持32位應用程式,不支持16位應用程式。
SPI_GETPOWEROFFACTIVE:確定是否允許螢幕保護中關電。TRUE表示允許,FA參數pvParam必須指定SERIALKEYS結構來接收信息。該結構中的cbSize成員和ulParam參數的值要設為sizeof(SERIALKEYS)。
SPI_GETSHOWSOUNDS:確定ShowSounds易用特性標誌是開或是關。如果是開,那么用戶需要一個應用程式來可視化地表達信息,占則只能以聽得見的方式來表達。參數pvParam必須指向一個BOOL類型變數。該變數在該特徵處於開狀態時返回TRUE,否則為FALSE。使用這個值等同於調用GetSystemMetrics(SM_SHOWSOUNDS)。後者是推薦使用的調用方式。
SPI_GETSNAPTODEFBUTTON:用於Windows NT 4.0及以後版本、Windows 98:確定 Snap-TO-Default-Button(轉至預設按鈕)特徵是否允許。如果允許,那么滑鼠自動移至預設按鈕上,例如對話框的"Ok"或"Apply"按鈕。pvParam參數必須指向Bool類型變數,如果該特徵被允許,則該變數接收到TRUE,否則為FALSE。
SPI_GETSOUNDSENTRY:檢索與SOUNDSENTRY可訪問特徵有關的信息。參數pvParam必須指向SOUNDSENTRY結構以接收信息。該結構中的。cbSize或員和ulParam參數的值要設為sizeof(SOUNDSENTRY)。
SPI_GETSTICKYKEYS:檢索與StickyKeys易用特徵有關的信息。參數 pvParam必須指向STICKYKEYS結構以獲取信息。該結構中的cbSze成員及ulParam參數的值須設為sizeof(STICKYKEYS)。
SPI_GETSWITCHTASKDISABLE:用於Windows NT 5.0、Windows 95及以後版本,確定是否允許Alt+Tab和AIt+Esc任務切換。參數pvParam必須指向UINT類型變數,如果禁止任務切換,那么返回值為1,否則為0。在預設情況下,是允許進行任務切換的。
SPI_GETTOGGLEKEYS:檢索與ToggleKeys易用特性有關的信息。參數pvParam必須指向TOGGLEKEYS結構以獲取信息。該結構中的cbSize成員和ulParam參數值要設定sizeof(TOGGLEKEYS)。
SPI_GETWHEELSCROLLLINES:用於Windows NT 4.0及以後版本、Windows 98。當前軌跡球轉動時,獲取滾動的行數。參數pvParam必須指向UINT類型變數以接收行數。預設值是3。
SPI_GETWINDOWSEXTENSION:在Windows 95中指示系統中是否裝了Windows Extension和Windows Plus!。
參數ulParam應設為1。而參數pvParam則不用。如果安裝了Windows Extenson,那么該函式返回TRUE,否則為FALSE。
SPI_GETWORKAREA:檢索主顯示器的工作區大小。工作區是指螢幕上不被系統任務條或應用程式桌面工具遮蓋的部分。參數pvParam必須指向RECT結構以接收工作區的坐標信息,坐標是用虛擬螢幕坐標來表示的。為了獲取非主顯示器的工作區信息,請調用GetMonitorlnfo函式。參數ulParam指定寬度,單位是像素。
SPI_ICONVERTICALSPACING:設定圖示單元的高度。參數ulParam指定高度,單位是像素。
SPI_LANGDRIVER:未實現。
SPI_SCREENSAVERRUNNING:改名為SPI_SETSCREENSAVERRUNNING。
Spl_SETACCESSTIMEOUT:設定與可訪問特性有關的時間限度值,參數 pvParam必須指向包含新參數的ACCESSTIMEOUT結構,該結構的cbSize成員與ulParam參數的值要設為sizeof(ACCESSTMEOUT)。
SPI_SETACTIVEWINDOWTRACKING:用於Windows NT 5.0及以後版本、Windows 98。設定活動視窗追蹤的開或關,如果把參數pvParam設為TRUE,則表示開。pvParam參數為FALSE時表示關。
SPI_SETACTIVEWNDTRKZORDER:用於Windows NT 5.0及以後版本、Windows 98。表示是否把通過活動視窗跟蹤而激活的視窗推至頂層。參數pvParam設為TRUE表示推至頂層,FALSE則表示不推至頂層。
SPI_SETACTIVEWNDTRKTIMEOUT:用於Wlindows NT 5.0及以後版本、Windows 98。設定活動視窗跟蹤延遲。
參數pvParam設定在用滑鼠指針激活視窗前需延遲的時間量,單位為毫秒
SPI_SETBEEP:將警蜂器打開或關閉。參數ulParam指定為TRUE時表示打開,為FALSE時表示關閉。
SPI_SETBORDER:設定確定視窗縮放邊界的邊界放大因子。參數ulParam用來指定該值。
SPI_SETCOMBOBOXANIMATION:用於Windows NT 5.0及以後版本和Windows 98。允許或禁止組合滑動打開效果。如果設定pvParam參數為TRUE,則表示允許有傾斜效果,如果設為FALSE則表示禁止。
SPI_SETCURSORS:重置系統游標。將ulParam參數設為0並且pvParam參數設為NULL。
SPI_SETDEFAULTINPUTLANG:為系統Shell(命令行解器)和應用程式設定預設的輸入語言。指定的語言必須是可使用當前系統字元集來顯示的。pvParam參數必須指向DWORD變數,該變數包含用於預設語言的鍵盤布局句柄。
SpI_SETDESKpATTERN:通過使Windows系統從WIN.INI檔案中pattern=設定項來設定當前桌面模式。
SPI_SETDESKWALLPAPER:設定桌面壁紙。pvParam參數必須指向一個包含點陣圖檔案名稱,並且以NULL(空)結束的字元串。
SPI_SETDOUBLECLICKTIME:設ulParam參數的值為目標雙擊時間。雙擊時間是指雙擊中的第1次和第2次點擊之間的最大時間,單位為毫秒。也可以使用SetDoubleClickTime函式來設定雙擊時間。為獲取當前雙擊時間,請調用GetDoubleClickTime函式。
SPI_SETDOUBLECLKHEGHT:將ulParam參數的值設為雙擊矩形區域的高度。雙擊矩形區域是指雙擊中的第2次點擊時滑鼠指針必須落在的區域,這樣才能記錄為雙擊。
SPI_SETDOUBLECLKWIDTH:將ulParam參數的值設為雙擊矩形區域的寬度。
SPI_SETDRAGFULLWINDOWS:設定是否允許拖至最大視窗。參數uIParam指定為TRUE時表示為允許,為FALSE則不可。對於Windows 95,該標誌只有在安裝了Windows plus!才支持。
SPI_SETDRAGHEIGHT:設定用於檢測拖拉操作起點的矩形區域的高度,單位為像素。參考GETSYSTEMMETRICS函式的nlndex參數中的SM_CXDRAG和SM_CYDRAG。
SPI_SETDRAGWIDTH:設定用於檢測拖拉操作起點的矩形區域的寬度,單位為像素。
SPI_SETFASTTASKSWITCH:該標誌己不再使用。以前版本的系統使用此標誌來允許或不許進行Alt+Tab快速任務切換。對於Windows 95、Windows 98和Windows NT 4.0,通常都允許進行快速任務切換。參考SPI_SETSWITCHTASKDISABLE。
SPI_SETFILTERKEYS:設定FilterKeys易用特性的參數。參數pvParam必須指向包含新參數的FILTERKEYS結構,該結構中的cbSize成員和參數ulParam的值應設為sizeof(FILTERKEYS)。
SPI_SETFONTSMOOTHING:允許或禁止有字型平滑特性。該特性使用字型保真技術,通過在不同灰度級上塗畫像素點來使得字型曲線顯得更加平滑,為了允許有該特性,參數ulParam應設為TRUE值,否則為FALSE。對於Windows 95,只有在安裝了Windows plusl才支持該標誌。
SPI_SETFOREGROUNDFLASHCOUNT:用於Windows 98和Windows NT 5.0及以後版本。設定SetForegroundWindow在拒絕前台切換申請時閃爍任務攔按鈕的次數。
SPI_SETFOREGROUNDLOCKTIMEOUT:用於Windows 98和Windows NT 5.0及以後版本。它用來設定在用戶輸入之後,系統禁止應用程式強行將自己進入前台期間的時間長度,單位為毫秒。參數pvParam設定這個新的時間限度值。
SPI_SETGRADIENTCAPTIONS:用於Windows 98和Windows NT 5.0及以後版本。允許或禁止視窗標題欄有傾斜效果。如果允許則將參數pvParam設定為TRUE,否則設為FALSE。有關傾斜效果方面更多信息,請參考GetSysColor函式。
SPI_SETGRIDGRANULARITY:將桌面縮放時格線的顆粒度值設定為參數ulParam中的值。
SPI_SETHANDHELD:內部使用,應用程式不應使用該值。
SPI_SETHIGHCONTRAST:用於Windows 95及以後版本、Windows NT 5.0及以後版本。設定HighContrast可訪問特性的參數。參數pvParam必須指向HIGHCONTRAST結構,該結構包含新的參數。該結構中的cbSize成員及參數ulParam的值設為sizeof(HIGHCONTRAST)。
SPI_SETICONMETRICS:設定與圖示有關的信息。參數pvParam必須指向包含新參數的ICONMETRICS結構,另外還要將參數ulParam和該結構中的cbSize成員的值設定為sizeof(ICONMETRICS)。
SPI_SETICONS:重新載入系統圖示。參數ulParam的值應設為0,而pvParam參數應設為NULL。
SPI_SETICONTITLELOGFONT:設定用於圖示標題的字型。參數ulParam指定為logfont結構的大小,而參數pvParam必須指向一個LOGFONT結構。
SPI_SETICONTITLEWRAP:打開或關閉圖示標題折行功能。若想打開折行功能,則把參數ulParam設為TRUE,否則為FALSE。
SPI_SETKEYBOARDDELAY:設定鍵盤重複延遲。參數ulParam必須指定為0,1,2或3。其中0表示設定為最短延遲(大約 250ms)3,表示最大延遲(大約 1 秒)。與每個值對應的實際的延遲時間根據硬體情況有可能有些變化。
SPI_SETKEYBOARDPREF:用於Windows 95及以後版本、Windows NT 5.0及以後版本,設定鍵盤優先序。如果用戶依賴鍵盤而不是滑鼠,那么可將參數ulParam指定為TRUE,否則設為FALSE,並且要求應用程式顯示而不隱蔽鍵盤接口
SPI_SETKEYBOARDSPEED:設定鍵盤重擊鍵速度。參數ulParam必須指定一個從0到31的值,其中0表示設定成最快速度(大約30次/秒),31表示設定為最低速度(大約2。5次/秒),實際的重速率與硬體有關,而且可能變動幅度高達20%。如果ulParam大於31,那么該參數仍設定為31。
SPI_SETLANGTOGGLE:為輸入語言間切換設定熱鍵集。參數ulParam和pvParam不用。該值通過讀取註冊表來設定鍵盤屬性表單中的快捷鍵。在使用該標誌之前必須設定註冊表,註冊表中的路徑是"1"=Alt+shift,"2"=Ctrl+shift,"3"=none(無)。
SPI_SETLISTBOXSMOOTHSCROLLING:用於Windows 98和Windows NT 5.0及以後版本。允許或不許列表欄有平滑滾動效果。參數pvParam設定為TRUE表示允許有平滑滾動效果,為FALSE則表示禁止。
SPI_SETLOWPOWERACTIVE:激活或關閉低電壓螢幕保護特性。參數ulParam設為1表示激活,0表示關閉。參數pvParam必須設為NULL。對於Windows 98,該標誌支持16位和32位應用程式。對於Windows 95,該標誌只支持16位應用程式。對於Windows NT.該標誌只支持NT 5.0及以後版本的32位應用程式,不支持16位應用程式。
SPI_SETLOWPOWERTIMEOUT:用於設定低電壓螢幕保護中的時間值(也稱逾時值,即在超過某一時間段後自動進行螢幕保護),單位為秒。uIParam參數用來指定這個新值。參數pvParam必須為NULL。對於Windows98,該標誌支持16位和32位應用程式。對於Windows 95,該標誌只支持16位應用程式。對於Windows NT該標誌只支持NT 5.0及以後版本的32位應用程式,不支持16位應用程式。
SPI_SETMENUDROPALIGNMENT:設定彈出或選單的對齊方式。參數ulParam指定為TRUE時表示是右對齊,FALSE時為左對齊。
SPI_SETMINIMIZEDMETRICS:設定與最小化視窗有關的數據信息,參數pvParam必須指向包含新參數的MINIMIZEDMETRICS結構。該結構中的cbSize成員與ulParam參數的值應設為sizeof(MINMIZEDMETRICS)。
SPI_SETMOUSE:設定滑鼠的兩個閥值和加速率。參數pvParam必須指向一個長度為3的數組,以指定這些值。詳細請參考mouse_event
SPI_SETMOUSEBUTTONSWAP:調換或恢復滑鼠左右按鈕的含義,為FALSE時表示恢復原來的含義。
SPI_SETMOUSEHOVERHEGHT:用於Windows 98和Windows NT 4.0及以後版本。設定滑鼠指針停留區域的高度,以像素為單位。滑鼠指針在此區域停留是為了讓TrackMouseEvent產生一條WM_MUOSEHOVER訊息,參數ulParam用來設定此高度值。
SPI_SETMOUSEHOVERTIME:用於Windows 98和Windows NT 4.0及以後版本。設定滑鼠指針為了讓TrackMouseEvent產生WM_MOUSEHOVER事件而在停留區域應停留的時間。該標誌只有在將調用dwHoverTime參數中的HOVER_DEFAULT值傳送到TrackMouseEvent時才使用。參數ulParam設定這個新的時間值。
SPI_SETMOUSEHOVERWIDTH:用於Windows 98和Windows NT 4.0及以後版本。設定滑鼠指針停留區域的寬度,以像素為單位。參數ulParam設定該新值。
SPI_SETMOUSEKEYS:設定MouseKeys易用特性的參數。參數pvParam必須指向包含新參數的MOUSEKEYS結構。結構中的cbSize成員與參數ulParam的值應設為sizeof(MOUSEKEYS)。
SPI_SETMOUSESPEED:用於Windows NT 5.0及以後的版本和Windows 98,設定當前滑鼠速度。參數pvParam必須指向一個1(最慢)至20(最快)之間的整數。預設值是10。一般可以使用滑鼠控制臺應用程式來設定該值。
SPI_SETMOUSETRAILS:用於Windows 95及以後版本:允許或禁止有MoouseTrails(滑鼠軌跡)特性。該特性通過簡短地顯示滑鼠游標軌跡,並迅速地擦除它們來提高滑鼠的可見度。禁止該特性可將參數ulParam設為0或1,允許時,將ulParam設定為一個大於1的數值,該值表示軌跡中畫出的游標個數。
SPI_SETNONCLIENTMETRICS:設定與非最小化視窗的非客區有關的數據信息,參數pvParam必須指向NONCLIENTMETRICS結構,該結構包含新的參數。其成員cbSzie和參數ulParam的值應設為sizeof(NONCLIENTMETRICS)。
SPI_SETPENWINDOWS;用於Windows 95及以後版本:指定是否載入筆視窗,當載入時,參數ulParam設為TRUE,不載入時為FALSE。參數pvParam為NULL。
SPI_SETPOWEROFFACTIVE:激活或關閉螢幕保護特性參數。ulParam設為1表示激活,0表示關閉。參數pvParam必須為NULL。對於Windows 98,該標誌支持16位和32位應用程式。對於Windows 95,該標誌只支持16位應用程式。對於Windows NT,該標誌支持Windows NT 5.0及以後版本的32位應用程式,不支持16位應用程式。
SPI_SETPOWEROFFTIMEOUT:設定用於關閉螢幕保護所需的時間值(也稱逾時值)。參數ulParam指定該值。參數pvParam必須為NULL。對於Windows 98.該標誌支持16位和32位應用程式。對於Windows 95,該標誌只支持16位應用程式。對於Windows NT,該標誌支持Windows NT 5.0及以後版本上的32位應用程式,不支持16位應用程式。
SPI_SETSCREENREADER;用於Windows 95及以後版本、Windows NT 5.0及以後版本,表示螢幕審閱程式是否運行。參數uiparm指定為TRUE表示運行該程式,FALSE則不運行。
SPI_SETSCREENSAVERRUNNING:用於Windows 95及以後版本,內部使用。應用程式不應該使用此標誌SPI_SETSETSCREENSAVETIMEOUT:參數ulParam值為螢幕保護器時間限度值。該值是一個時間量,以秒為單位,在螢幕保護器激活之前,系統應該一直是空閒的,超過這個值就激活螢幕保護器。
SPI_SETSERIALKEYS:用於Windows 95及以後版本:設定SerialKeys易用特性的參數。參數pvParam必須指向包含新參數的SERIALKEYS結構,其成員cbSize和參數ulParam應設為sizeof(SERIALKEYS)。
SPI_SETSHOWSOUNDS:將ShowSounds易用特性設定為打開或關閉。參數ulParam指定為TRUE時表示打開,FALSE表示關閉。
SPI_SETSNAPTODEFBUTTON:用於Windows NT 4.0及以後版本、Windows 98。允許或禁止有snap-to-default-button(跳轉至預設按鈕)特性。如果允許,那么滑鼠游標會自動移至預設按鈕上,例如對話櫃中的OK或"apply"按鈕。參數ulParam設為TRUE表示允許該特性,FALSE表示禁止。
SPI_SETSOUNDSENTRY:設定SOUNDSENTRY易用特性的參數。參數pvParam必須指向SOUNDSENTRY結構,該結構包含新參數,其成員cbSize和參數ulParam的值應設為sizeof(SOUNDSENTRY)。
SPI_SETSTICKYKEYS:設定stickykeys可訪問特性的參數。參數pvParam必須指向包含新參數的stickykeys結構,其成員cbSize和ulParam參數的值要設為sizeof(STICKYKEYS)。
SPI_SETSWITCHTASKDISABLE:用於Windows NT 5.0及以後版本,允許或禁止有Alt+Tab和Alt+Esc任務切換特性。參數ulParam設為1表示允許有該特性,設為0則表示禁止。預設情況下是允許有任務切換特性的。
SPI_SETTOGGLEKEYS:設定togglekeys可訪問特性的參數,參數PvParam必須指向TOGGLEKEYS結構,該結構中包含新的參數。其成員cbSize和參數ulParam的值要設為sizeof(togglekeys)。
SPI_SETWHEELSCROOLLLINES:用於Windows 98和Windows NT 4.O及以後版本。設定當滑鼠軌跡球轉動時
要滾動的行數,滾動的行數是由參數ulParam設定的,該行數是在滑鼠軌跡球滾動,並且沒有使用修改鍵時的滾動行數。如果該數值為0,那么不會發生滾動,如果滾動行數比可見到的行數要大,尤其如果是WHEEL_PAGESCROLL(#defined sa UINT_MAX),那么滾動操作應該被解釋成在滾動條的下一頁或上一頁區點擊一次。
SPI_SETWORKAREA:設定工作區域大小。工作區是指螢幕上沒有被系統系統列或桌面應用程式桌面工具遮蓋的部分。參數pvParam是一個指針。指向RECT結構,該結構規定新的矩形工作區域,它是以虛擬螢幕坐標來表達的。在多顯示器系統中,該函式用來設定包含特定矩形的顯示器工作區域。如果PvParam為NULL,那么該函式將主顯示器的工作區域設為全螢幕。
uiParam:uiParam 在參數說明中所有為ulParam均為錯誤。
pvParam:與查詢或設定的系統參數有關。關於系統級參數的詳情,請參考uiAction參數。否則在沒有指明情況下,必須將該參數指定為NULL。
fWinlni:如果設定系統參數,則它用來指定是否更新用戶配置檔案(Profile)。亦或是否要將WM_SETTINGCHANGE訊息廣播給所有頂層視窗,以通知它們新的變化內容。該參數可以是0或下列取值之一:
SPIF_UPDATEINIFILE:把新的系統參數的設定內容寫入用戶配置檔案
SPIF_SENDCHANGE:在更新用戶配置檔案之後廣播WM_SETTINGCHANGE訊息。
SPI_SENDWININICHANGE與 SPIF_SENDCHANGE一樣。
返回值:如果函式調用成功,返回值非零:如果函式調用失敗,那么返回值為零。若想獲取更多錯誤信息,請調用GetLastError函式。
備註:該函式一般與應用程式,例如控制臺一起使用。它可以允許用戶對Windows任意進行定製。
盤布局名稱是從對應於布局的16進制語言標識符引生而來的。例如,美國英語(U.S.Englisth)的語言標識符為" 0×0409",則主美國英語鍵盤布局命名為"00000409"其他的鍵盤布局如Dvotak等,命名為"00010409"、"00020409"等,關於此的列表參見MAKELANGID宏。
Wiows CE作業系統只支持下列uiAction值:
SPI_GETBATTERYIDLETIMEOUT:在WINDOWS CE沒有因用戶操作而掛起之前,乾電池電源能堅持給系統供電的時間量可以使用該標誌得到。以秒為單位,如果pvParam為0,那么該標誌被忽略。
SPI_GETEXTERNALIDLETIMEOUT:在 Windows CE沒有因用戶操作而掛起之前,交流電源能堅持給系統供電時間的時間量可以使用該標誌得到。參數pvParam指向一個DWORD類型變數,以返回時間值,單位為秒。如果pvParam為0,那么該標誌被忽略。
SPI_GETMOUSE:檢索滑鼠的兩個閾值和速度。
SPI_GETOEMINFO:返回一個字元串,該字元串包含型號和製造商名稱。參數ulParam指定為pvParam參數中緩衝區的長度,在成功返回時,參數pvParam中包含Unicode字元集中的字元串。
SPI_GETPLATFORMTYPE:返回一個指定Windows CE設備類型的字元串,例如"H/PC"。參數ulParam規定pvParam參數緩衝區的長度,後者在成功返回時包含一個Unicode字元集中的字元串。該字元串允許象 H/PC EXPLORER一樣的應用程式來確定設備類型。
SPI_GETWAKEUPDLETIMEOUT:在用戶通知重新激活某個掛起的設備之後,可獲取的Windows CE延緩回響的時間量。參數pvParam指向一個DWORD類型變數以返回時間值,單位為秒。如果pvParam值為0那么該標誌被忽略。
SPI_GETWORKAREA:檢索工作區大小。工作區是指沒有被任務遮蓋的螢幕部分。
SPI_SETBATTERYidletimeout:在Windows CE沒有因用戶操作而掛起之前,電池電源能堅持給系統供電的時間量可以使用該標誌來設定。只要鍵盤或觸控螢幕處在活動狀態(有輸入),那么Windows CE作業系統及電池電源仍將工作。參數ulParam指定要設定的時間,單位為秒。如果ulParam設定為0,那么該標誌被忽略。
SPI_SETEXTERNALIDLETIMEOUT:在Windows CE沒有因用戶操作而掛起之前,交流電源能堅持給系統供電的時間量可以使用該標誌來設定。只要鍵盤或觸控螢幕幕處在活動狀態,那么Windows CE作業系統及AC電源仍將工作。參數ulParam指定要設定的時間,單位為秒。如果ulParam設為0,那么該標誌被忽略。SPL_SETMOUSE:設定滑鼠的兩個閾值和速度。
SPI_SETWAKEUPIDLETIMEOUT:在用戶通知重新激活某個掛起的設備之後,Windows CE延緩回響的時間長度量可使用該標誌來設定。參數ulParam指定這個時間量,單位為秒,如果ulParam設定為0,那么該標誌被忽略。
SPI_SETWORKAREA設定工作區大小,工作區是指沒有被任務條遮蓋的螢幕部分。如果用來獲取平台類型或OEM信息串的pvParam緩衝區太小,那么該函式會調用失敗,並出現錯誤值ERROR_INSUFFICENT_BUFFER。Windows CE只支持該函式的UNICODE版。Windows CE不支持參數fWinlni的取值為SPIF_SENDWININICHANGE的情形。
速查:Windows NT:3.1及以上版本;Window:95及以上版本;Windows CE:不支持;頭檔案:Winuser.h;庫檔案:user32.lib;Unicode:在Windows NT環境中實現為Unicode和ANSI兩個版本。
示例:
#include <windows.h>
#include <tchar.h>
int WINAPI WinMain
(
HINSTANCE hInstance,
HINSTANCE hInstPrev,
#ifdef UNDER_CE
LPWSTR pszCmdLine,
#else
LPSTR pszCmdLine,
#endif
int nCmdShow
)
{
// This retrieves the device context (DC) for the primary display driver. This is not associated
with a window.
// This is only used for simplicity of the example.
HDC hdc = GetDC(NULL);
int nSmooth, nOldSmooth;
// A rectangle to hold the text.
RECT rc = { 10, 10, 100, 100};
LOGFONT lf;
HFONT hFontNew, hFontOld;
int nTextHeight;
// Clear out the lf structure to use when creating the font.
memset(&lf, 0, sizeof(LOGFONT));
// Retrieve the old Cleartype gamma.
SystemParametersInfo(SPI_GETFONTSMOOTHINGCONTRAST, 0, &nOldSmooth, FALSE);
// Draw text with the default system font. First calculate the size of the rectangle to use.
DrawText(hdc, TEXT("This is the default system font."), -1, &rc, DT_CALCRECT | DT_LEFT | DT_TOP);
DrawText(hdc, TEXT("This is the default system font."), -1, &rc, DT_LEFT | DT_TOP);
// Draw a Cleartype font with a font smoothing of 1000.
nSmooth = 1000;
SystemParametersInfo(SPI_SETFONTSMOOTHINGCONTRAST, 0, &nSmooth, FALSE);
nTextHeight = rc.bottom - rc.top;
rc.top += nTextHeight;
rc.bottom += nTextHeight;
lf.lfQuality = CLEARTYPE_QUALITY;
hFontNew = CreateFontIndirect(&lf);
hFontOld = (HFONT) SelectObject(hdc, hFontNew);
DrawText(hdc, TEXT("This is a ClearType font w/ 1000 font smoothing."), -1, &rc, DT_CALCRECT |
DT_LEFT | DT_TOP);
DrawText(hdc, TEXT("This is a ClearType font w/ 1000 font smoothing."), -1, &rc, DT_LEFT | DT_TOP);
SelectObject(hdc, hFontOld);
DeleteObject(hFontNew);
// Sleep 20 seconds to let the user see the text.
Sleep(20000);
SystemParametersInfo(SPI_SETFONTSMOOTHINGCONTRAST, 0, &nOldSmooth, FALSE);
DeleteDC(hdc);
}

相關詞條

熱門詞條

聯絡我們