インストール済メールアプリケーション取得 <TOP>
レジストリからメールアプリケーションを取得し列挙します。
RegOpenKey 指定されたレジストリキーをオープン
RegEnumKey 指定された開いているレジストリーキーのサブキーを列挙
RegCloseKey レジストリのハンドルを解放
左:WindowXPでの例 右:Windows2000での例
'================================================================ '= インストール済メールアプリケーション取得
'= (GetMailApp.bas) '================================================================ #include "Windows.bi" ' 指定されたレジストリキーをオープン Declare Function Api_RegOpenKey& Lib "advapi32" Alias "RegOpenKeyA" (ByVal hKey&, ByVal lpSubKey$, phkResult&) ' 指定された開いているレジストリーキーのサブキーを列挙 Declare Function Api_RegEnumKey& Lib "advapi32" Alias "RegEnumKeyA" (ByVal hKey&, ByVal dwIndex&, ByVal lpName$, ByVal cbName&) ' レジストリのハンドルを解放 Declare Function Api_RegCloseKey& Lib "advapi32" Alias "RegCloseKey" (ByVal hKey&) #define HKEY_LOCAL_MACHINE -2147483646 'PCを利用するユーザーに共通の設定情報 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 sKey As String * 255 Var lRegKey As Long Var iKey As Integer Var Ret As Long List1.ResetContent Ret = Api_RegOpenKey(HKEY_LOCAL_MACHINE, "Software\Clients\Mail", lRegKey) While Api_RegEnumKey(lRegKey, iKey, sKey, 255) = 0 List1.AddString Left$(sKey, InStr(sKey, Chr$(0)) - 1) iKey = iKey + 1 Wend Ret = Api_RegCloseKey(lRegKey) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End