サウンド表示情報を取得 <TOP>
SystemParametersInfo システム全体に関するパラメータを取得・設定
lstrcpy
文字列をコピーする
下図のチェックボックス、ラジオボタンを選択した場合の状態を表示させています。
'================================================================ '= サウンド表示情報を取得 '= (SoundSentry.bas) '================================================================ #include "Windows.bi" Type tagSOUNDSENTRY cbSize As Long dwFlags As Long iFSTextEffect As Long iFSTextEffectMSec As Long iFSTextEffectColorBits As Long iFSGrafEffect As Long iFSGrafEffectMSec As Long iFSGrafEffectColor As Long iWindowsEffect As Long iWindowsEffectMSec As Long lpszWindowsEffectDLL As Long iWindowsEffectOrdinal As Long End Type #define SSF_AVAILABLE &H2 'サウンド機能使用可能 #define SSF_INDICATOR &H4 'SoundSentryがついている間、システムアイコンを表示 #define SSF_SOUNDSENTRYON &H1 'サウンド機能ON #define SPI_GETSOUNDSENTRY 64 'ユーザー補助機能のサウンド解説に関する情報を定義するSOUNDSENTRY構造体を取得 #define MAX_PATH 260 #define SSWF_CUSTOM 4 'lpszWindowsEffectDLLで指定するDLLからエクスポートされるSoundSentryProcを呼び出す(Windows9x) #define SSWF_DISPLAY 3 'ディスプレイ全体を点滅 #define SSWF_NONE 0 'ビジュアル効果なし #define SSWF_TITLE 1 'アクティブウィンドウのキャプションバーを点滅 ' システム全体に関するパラメータを取得・設定 Declare Function Api_SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction&, ByVal uiParam&, pvParam As Any, ByVal fWinIni&) ' 文字列をコピーする Declare Function Api_lstrcpy$ Lib "Kernel32" Alias "lstrcpy" (lpszString1$, lpszString2 As Any) Var Shared List1 As Object Var Shared Button1 As Object List1.Attach GetDlgItem("List1") : List1.SetFontSize 12 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var tss As tagSOUNDSENTRY Var edll As String * MAX_PATH Var Ret As Long 'リストボックスをクリア List1.ResetContent '構造体を初期化 tss.cbSize = Len(tss) 'サウンド表示の情報を取得 Ret = Api_SystemParametersInfo(SPI_GETSOUNDSENTRY, Len(tss), tss, 0) 'サウンド表示の情報を表示 If (tss.dwFlags And SSF_SOUNDSENTRYON) = SSF_SOUNDSENTRYON Then List1.AddString "サウンド表示:有効" End If If (tss.dwFlags And SSF_AVAILABLE) = SSF_AVAILABLE Then List1.AddString "サウンド表示:あり" End If If (tss.iWindowsEffect And SSWF_NONE) = SSWF_NONE Then List1.AddString "表 示:[なし]" End If If (tss.iWindowsEffect And SSWF_TITLE) = SSWF_TITLE Then List1.AddString "表 示:アクティブタイトルバー" End If If (tss.iWindowsEffect And SSWF_WINDOW) = SSWF_WINDOW Then List1.AddString "表 示:アクティブウィンドウ" End If If (tss.iWindowsEffect And SSWF_DISPLAY) = SSWF_DISPLAY Then List1.AddString "表 示:デスクトップ" End If If (tss.iWindowsEffect And SSWF_CUSTOM) = SSWF_CUSTOM Then List1.AddString "表 示:カスタム" End If 'DLL名が含まれているとき If tss.lpszWindowsEffectDLL <> 0 Then edll = Api_lstrcpy(edll, tss.lpszWindowsEffectDLL) List1.AddString "DLL名:" & Left$(edll, InStr(edll, Chr$(0)) - 1) End If End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End