デスクトップの模様を設定 <TOP>
WriteProfileString
WIN.INIの指定のセクションの内容を変更
SystemParametersInfo
システム全体に関するパラメータを取得・設定
デスクトップのパターンを10回ランダムに設定し、最後に「子犬」風パターンを設定しています。
文字列 = "64 192 200 120 120 72 0 0" とは
2進数で表すと図のパターンになります。
'================================================================ '= デスクトップの模様を設定 '= (SETDESKPATTERN.bas) '================================================================ #include "Windows.bi" ' WIN.INIの指定のセクションの内容を変更 Declare Function Api_WriteProfileString& Lib "Kernel32" Alias "WriteProfileStringA" (ByVal lpszSection$, ByVal lpszKeyName$, ByVal lpszString$) ' システム全体に関するパラメータを取得・設定 Declare Function Api_SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction&, ByVal uiParam&, pvParam As Any, ByVal fWinIni&) #define SPI_SETDESKPATTERN 21 ' #define SPIF_SENDWININICHANGE &H2 '全てのアプリケーションに通知して更新 #define SPIF_UPDATEINIFILE &H1 'ユーザープロファイルの更新を指定 Var Shared Button1 As Object Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var SectionName As String Var KeyName As String Var WriteString As String Var i As Integer Var Ret As Long 'セクション名を指定 SectionName = "Desktop" 'キー名を指定 KeyName = "Pattern" '書き込む文字列を指定 For i = 1 To 10 WriteString = "" WriteString = WriteString & Trim$(Str$(Rnd(1))) & " " WriteString = WriteString & Trim$(Str$(Rnd(1))) & " " WriteString = WriteString & Trim$(Str$(Rnd(1))) & " " WriteString = WriteString & Trim$(Str$(Rnd(1))) & " " WriteString = WriteString & "0 0" Gosub *SetPattern Wait 50 Next '子犬のパターン文字列 WriteString = "64 192 200 120 120 72 0 0" Gosub *SetPattern Exit Sub *SetPattern '指定セクションに文字列を書き込み Ret = Api_WriteProfileString(SectionName, KeyName, WriteString) 'デスクトップの模様を変更 Ret = Api_SystemParametersInfo(SPI_SETDESKPATTERN, 0, ByVal CLng(0), SPIF_SENDCHANGE) Return End Sub '================================================================ '= '================================================================ Declare Sub Button2_on edecl () Sub Button2_on() Var SectionName As String Var KeyName As String Var WriteString As String Var Ret As Long 'セクション名を指定 SectionName = "Desktop" 'キー名を指定 KeyName = "Pattern" 'パターン文字列(クリア) WriteString = "" '指定セクションに文字列を書き込み Ret = Api_WriteProfileString(SectionName, KeyName, WriteString) 'デスクトップの模様を変更 Ret = Api_SystemParametersInfo(SPI_SETDESKPATTERN, 0, ByVal CLng(0), SPIF_SENDCHANGE) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End