ハイコントラスト機能情報を取得 <TOP>
ハイコントラスト機能の情報を取得します。
SystemParametersInfo
システム全体に関するパラメータを取得・設定
lstrcpy
文字列をコピーする
右:ユーザー補助のオプション → 画面 → ハイコントラストの設定 で一部を確認しています。
'================================================================ '= ハイコントラスト機能情報を取得 '= (SPI_GETHIGHCONTRAST.bas) '================================================================ #include "Windows.bi" Type HIGHCONTRAST cbSize As Long dwFlags As Long lpszDefaultScheme As Long End Type #define HCF_AVAILABLE &H2 'ハイコントラストモード機能あり #define HCF_CONFIRMHOTKEY &H8 'ショートカットキーの有効時に確認 #define HCF_HIGHCONTRASTON &H1 'ハイコントラスト機能有効 #define HCF_HOTKEYACTIVE &H4 '[Alt]+[Shift]+[PrintScreen]でショートカットキーを使う #define HCF_HOTKEYAVAILABLE &H40 'ショートカットキーあり #define HCF_HOTKEYSOUND &H10 'ショートカットキーの有効時に音 #define HCF_INDICATOR &H20 'ハイコントラスト機能の状態を表示 #define SPI_GETHIGHCONTRAST 66 'ユーザー補助機能のハイコントラストの設定状況を定義するHIGHCONTRAST構造体を取得 ' システム全体に関するパラメータを取得・設定 Declare Function Api_SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction&, ByVal uiParam&, pvParam As Any, ByVal fWinIni&) ' 文字列をコピーする Declare Function Api_lstrcpy& Lib "Kernel32" Alias "lstrcpyA" (ByVal lpszString1$, lpszString2 As Any) Var Shared List1 As Object Var Shared Button1 As Object List1.Attach GetDlgItem("List1") : List1.SetFontSize 14 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var hc As HIGHCONTRAST Var Scheme As String * 255 Var Ret As Long 'リストボックスをクリア List1.Resetcontent '構造体を初期化 hc.cbSize = Len(hc) 'ハイコントラスト機能の情報を取得 Ret = Api_SystemParametersInfo(SPI_GETHIGHCONTRAST, Len(hc), hc, 0) 'ハイコントラスト機能の情報を表示 If (hc.dwFlags And HCF_HIGHCONTRASTON) = HCF_HIGHCONTRASTON Then List1.AddString "ハイコントラスト機能有効" End If If (hc.dwFlags And HCF_AVAILABLE) = HCF_AVAILABLE Then List1.AddString "ハイコントラスト機能あり" End If If (hc.dwFlags And HCF_HOTKEYACTIVE) = HCF_HOTKEYACTIVE Then List1.AddString "ショートカットキーを使う" End If If (hc.dwFlags And HCF_CONFIRMHOTKEY) = HCF_CONFIRMHOTKEY Then List1.AddString "ショートカットキーの有効時に確認" End If If (hc.dwFlags And HCF_HOTKEYSOUND) = HCF_HOTKEYSOUND Then List1.AddString "ショートカットキーの有効時に音" End If If (hc.dwFlags And HCF_INDICATOR) = HCF_INDICATOR Then List1.AddString "ハイコントラスト機能の状態を表示" End If If (hc.dwFlags And HCF_HOTKEYAVAILABLE) = HCF_HOTKEYAVAILABLE Then List1.AddString "ショートカットキーあり" End If Ret = Api_lstrcpy(Scheme, ByVal hc.lpszDefaultScheme) List1.AddString "表示設定:" & Left$(Scheme, InStr(Scheme, Chr$(0)) - 1) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End