インストール済メールアプリケーション取得          <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