除錯經驗——VBA獲取螢幕解析度
阿新 • • 發佈:2019-02-10
看這些引數,給人一種老掉牙的感覺,在此列出,僅備一時之需。
Public Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long Public Const SM_CXSCREEN = 0 Public Const SM_CYSCREEN = 1 Sub 取解析度() Dim x As Long, y As Long x = GetSystemMetrics(SM_CXSCREEN) y = GetSystemMetrics(SM_CYSCREEN) Debug.Print "您的螢幕解析度為:" & x & "*" & y End Sub ' ' '引數表 '引數 型別及說明 'nIndex Long,常數,指定欲獲取的資訊;如下表所示 'nIndex常數設定 '常數定義 取得資訊 'SM_ARRANGE 設定windows如何排列最小化視窗的一個標誌?參考api32.txt中的ARW常數 'SM_CLEANBOOT 指定啟動模式。0=普通模式;1=帶網路支援的安全模式 'SM_CMETRICS 可用系統環境的數量 'SM_CMOUSEBUTTON 滑鼠按鈕(按鍵)的數量。如沒有滑鼠,就為零 'SM_CXBORDER, SM_CYBORDER 尺寸不可變邊框的大小 'SM_CXCURSOR, SM_CYCURSOR 標準指標大小 'SM_CXDLGFRAME, SM_CYDLGFRAME 對話方塊邊框的大小 'SM_CXDOUBLECLK, SM_CYDOUBLECLK 雙擊區域的大小(參考註解) 'SM_CXFRAME, SM_CYFRAME 尺寸可變邊框的大小(在win95和nt 4.0中使用SM_C?FIXEDFRAME) 'SM_CXFULLSCREEN, SM_CYFULLSCREEN 最大化視窗客戶區的大小 'SM_CXHSCROLL, SM_CYHSCROLL 水平滾動條上的箭頭大小 'SM_CXHTHUMB, SM_CYHTHUMB 滾動塊在水平滾動條上的大小 'SM_CXICON, SM_CYICON 標準圖示的大小 'SM_CXICONSPACING, SM_CYICONSPACING 桌面圖示之間的間隔距離。在win95和nt 4.0中是指大圖示的間距 'SM_CXMAXIMIZED, SM_CYMAXIMIZED 最大化視窗的預設尺寸 'SM_CXMAXTRACK, SM_CYMAXTRACK 改變視窗大小時,最大的軌跡寬度 'SM_CXMENUCHECK, SM_CYMENUCHECK 選單複選號點陣圖的大小 'SM_CXMENUSIZE, SM_CYMENUSIZE 選單欄上的按鈕大小 'SM_CXMIN, SM_CYMIN 視窗的最小尺寸 'SM_CXMINIMIZED, SM_CYMINIMIZED 最小化的視窗必須填充進去的一個矩形小於或等於SM_C?ICONSPACING 'SM_CXMINTRACK, SM_CYMINTRACK 視窗的最小軌跡寬度 'SM_CXSCREEN, SM_CYSCREEN 螢幕大小 'SM_CXSIZE, SM_CYSIZE 標題欄點陣圖的大小 'SM_CXSIZEFRAME, SM_CYSIZEFRAME 具有WS_THICKFRAME樣式的視窗的大小 'SM_CXSMICON, SM_CYSMICON 小圖示的大小 'SM_CXSMSIZE, SM_CYSMSIZE 小標題按鈕的大小 'SM_CXVSCROLL, SM_CYVSCROLL 垂直滾動條中的箭頭按鈕的大小 'SM_CYCAPTION 視窗標題的高度 'SM_CYKANJIWINDOW Kanji視窗的大小(Height of Kanji window) 'SM_CYMENU 選單高度 'SM_CYSMCAPTION 小標題的高度 'SM_CYVTHUMB 垂直滾動條上滾動塊的高度 'SM_DBCSENABLED 如支援雙位元組則為TRUE 'SM_DEBUG 如windows的除錯版正在執行,則為TRUE 'SM_MENUDROPALIGNMENT 如彈出式選單對齊選單欄專案的左側,則為零 'SM_MIDEASTENABLED 允許了希伯來和阿拉伯語 'SM_MOUSEPRESENT 如安裝了滑鼠則為TRUE 'SM_MOUSEWHEELPRESENT 如安裝了帶輪滑鼠則為TRUE;只適用於nt 4.0 'SM_NETWORK 如安裝了網路,則設定位0。其他位保留未用 'SM_PENWINDOWS 如裝載了支援筆視窗的DLL,則表示筆視窗的控制代碼 'SM_SECURE 如安裝了安全(保密)機制,則為TRUE 'SM_SHOWSOUNDS 強制視覺提示播放聲音 'SM_SLOWMACHINE 系統速度太慢,但仍在執行中(System is too slow for effective use but is being run anyway) 'SM_SWAPBUTTON 如左右滑鼠鍵已經交換,則為TRUE
執行結果: