IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Détecter le type de messagerie utilisée


Sujet :

Access

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Points : 504
    Points
    504
    Par défaut Détecter le type de messagerie utilisée
    Bonjour,

    Est-il possible de savoir quel logiciel de messagerie est utilisé par quelqu'un sur son poste ?

    En sachant ça, je pourrais ensuite via ACCESS envoyer des mails en fonction du logiciel utilisé.

    Merci !

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Tu as plusieurs solutions ;
    La plus simple étant d'interroger la BDR ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HKEY_CLASSES_ROOT\mailto\shell\open\command
    qui te renvoie en plus le chemin de l'exécutable concerné.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  3. #3
    Membre régulier
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Octobre 2005
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2005
    Messages : 93
    Points : 90
    Points
    90
    Par défaut
    Bonjour,

    C'est une des pistes vers lesquelles je m'étais orienté compte tenu de l'hétérogéneité du parc sur lequel tournait ma bd acces.

    Voici un bout de code à insérer dans un module qui permet de lire la base de registre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
     
    Option Compare Database
    Option Explicit
     
    '********Code Start**************
    'This code was originally written by Terry Kreft
    ' and Dev Ashish.
    'It is not to be altered or distributed,
    'except as part of an application.
    'You are free to use it in any application,
    'provided the copyright notice is left unchanged.
    '
    'Code Courtesy of Dev Ashish & Terry Kreft
    '
    Public Const HKEY_CLASSES_ROOT = &H80000000
    Public Const HKEY_CURRENT_USER = &H80000001
    Public Const HKEY_LOCAL_MACHINE = &H80000002
    Public Const HKEY_USERS = &H80000003
    Public Const HKEY_PERFORMANCE_DATA = &H80000004
    Public Const HKEY_CURRENT_CONFIG = &H80000005
    Public Const HKEY_DYN_DATA = &H80000006
     
    Private Const STANDARD_RIGHTS_READ = &H20000
    Private Const KEY_QUERY_VALUE = &H1&
    Private Const KEY_ENUMERATE_SUB_KEYS = &H8&
    Private Const KEY_NOTIFY = &H10&
    Private Const SYNCHRONIZE = &H100000
    Private Const KEY_READ = ((STANDARD_RIGHTS_READ Or _
                            KEY_QUERY_VALUE Or _
                            KEY_ENUMERATE_SUB_KEYS Or _
                            KEY_NOTIFY) And _
                            (Not SYNCHRONIZE))
    Private Const MAXLEN = 256
    Private Const ERROR_SUCCESS = &H0&
     
    Const REG_NONE = 0
    Const REG_SZ = 1
    Const REG_EXPAND_SZ = 2
    Const REG_BINARY = 3
    Const REG_DWORD = 4
    Const REG_DWORD_LITTLE_ENDIAN = 4
    Const REG_DWORD_BIG_ENDIAN = 5
    Const REG_LINK = 6
    Const REG_MULTI_SZ = 7
    Const REG_RESOURCE_LIST = 8
     
    Type FILETIME
        dwLowDateTime As Long
        dwHighDateTime As Long
    End Type
     
    Private Declare Function apiRegOpenKeyEx Lib "advapi32.dll" _
            Alias "RegOpenKeyExA" (ByVal hKey As Long, _
            ByVal lpSubKey As String, ByVal ulOptions As Long, _
            ByVal samDesired As Long, ByRef phkResult As Long) _
            As Long
     
    Private Declare Function apiRegCloseKey Lib "advapi32.dll" _
            Alias "RegCloseKey" (ByVal hKey As Long) As Long
     
    Private Declare Function apiRegQueryValueEx Lib "advapi32.dll" _
            Alias "RegQueryValueExA" (ByVal hKey As Long, _
            ByVal lpValueName As String, ByVal lpReserved As Long, _
            ByRef lpType As Long, lpData As Any, _
            ByRef lpcbData As Long) As Long
     
    Private Declare Function apiRegQueryInfoKey Lib "advapi32.dll" _
            Alias "RegQueryInfoKeyA" (ByVal hKey As Long, _
            ByVal lpClass As String, ByRef lpcbClass As Long, _
            ByVal lpReserved As Long, ByRef lpcSubKeys As Long, _
            ByRef lpcbMaxSubKeyLen As Long, _
            ByRef lpcbMaxClassLen As Long, _
            ByRef lpcValues As Long, _
            ByRef lpcbMaxValueNameLen As Long, _
            ByRef lpcbMaxValueLen As Long, _
            ByRef lpcbSecurityDescriptor As Long, _
            ByRef lpftLastWriteTime As FILETIME) As Long
     
    Function fReturnRegKeyValue(ByVal lngKeyToGet As Long, _
                                ByVal strKeyName As String, _
                                ByVal strValueName As String) _
                                As String
    Dim lnghKey As Long
    Dim strClassName As String
    Dim lngClassLen As Long
    Dim lngReserved As Long
    Dim lngSubKeys As Long
    Dim lngMaxSubKeyLen As Long
    Dim lngMaxClassLen As Long
    Dim lngValues As Long
    Dim lngMaxValueNameLen As Long
    Dim lngMaxValueLen As Long
    Dim lngSecurity As Long
    Dim ftLastWrite As FILETIME
    Dim lngType As Long
    Dim lngData As Long
    Dim lngTmp As Long
    Dim strRet As String
    Dim varRet As Variant
    Dim lngRet As Long
    On Error GoTo fReturnRegKeyValue_Err
     
        'Open the key first
        lngTmp = apiRegOpenKeyEx(lngKeyToGet, _
                    strKeyName, 0&, KEY_READ, lnghKey)
     
        'Are we ok?
        If Not (lngTmp = ERROR_SUCCESS) Then Err.RaiselngTmp vbObjectError
     
        lngReserved = 0&
        strClassName = String$(MAXLEN, 0):  lngClassLen = MAXLEN
     
        'Get boundary values
        lngTmp = apiRegQueryInfoKey(lnghKey, strClassName, _
            lngClassLen, lngReserved, lngSubKeys, lngMaxSubKeyLen, _
            lngMaxClassLen, lngValues, lngMaxValueNameLen, _
            lngMaxValueLen, lngSecurity, ftLastWrite)
     
        'How we doin?
        If Not (lngTmp = ERROR_SUCCESS) Then Err.RaisengTmp vbObjectError
     
        'Now grab the value for the key
        strRet = String$(MAXLEN - 1, 0)
        lngTmp = apiRegQueryValueEx(lnghKey, strValueName, _
                    lngReserved, lngType, ByVal strRet, lngData)
        Select Case lngType
          Case REG_SZ
            lngTmp = apiRegQueryValueEx(lnghKey, strValueName, _
                    lngReserved, lngType, ByVal strRet, lngData)
            varRet = left(strRet, lngData - 1)
          Case REG_DWORD
            lngTmp = apiRegQueryValueEx(lnghKey, strValueName, _
                    lngReserved, lngType, lngRet, lngData)
            varRet = lngRet
          Case REG_BINARY
            lngTmp = apiRegQueryValueEx(lnghKey, strValueName, _
                    lngReserved, lngType, ByVal strRet, lngData)
            varRet = left(strRet, lngData)
          Case REG_EXPAND_SZ
            lngTmp = apiRegQueryValueEx(lnghKey, strValueName, _
                    lngReserved, lngType, ByVal strRet, lngData)
            varRet = left(strRet, lngData)
        End Select
     
        'All quiet on the western front?
        If Not (lngTmp = ERROR_SUCCESS) Then Err.RaiselngTmp vbObjectError
     
    fReturnRegKeyValue_Exit:
        fReturnRegKeyValue = varRet
        lngTmp = apiRegCloseKey(lnghKey)
        Exit Function
     
    fReturnRegKeyValue_Err:
        varRet = "Erreur: Clef ou valeur non trouvée."
        Resume fReturnRegKeyValue_Exit
    End Function
    et voici des fonctions qui permette de reconnaitre le compte de l'utilisateur et le logiciel de messagerie utilisé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     
    Function GetDefaultMailSoftware() As String
    GetDefaultMailSoftware = fReturnRegKeyValue(HKEY_LOCAL_MACHINE, _
    "Software\Clients\Mail\", "")
    End Function
     
    Function GetDefaultMailAccount() As String
    Dim IAM_Path As String
    IAM_Path = fReturnRegKeyValue(HKEY_CURRENT_USER, _
      "Software\Microsoft\Internet Account Manager\", _
      "Default Mail Account")
     
    GetDefaultMailAccount = fReturnRegKeyValue(HKEY_CURRENT_USER, _
      "Software\Microsoft\Internet Account Manager\Accounts\" & IAM_Path, _
      "SMTP Email Address")
    End Function
    En esperant que celà t'aide...

Discussions similaires

  1. requete SQL sur Typed DataSet, sans utiliser SQL serveur
    Par Harry_polin dans le forum Accès aux données
    Réponses: 2
    Dernier message: 06/10/2006, 19h15
  2. Types d'images utilisables
    Par kankrelune dans le forum GTK+ avec PHP
    Réponses: 1
    Dernier message: 26/09/2006, 14h03
  3. erreur de type (0x8004020F)en utilisant cdo
    Par toussa dans le forum ASP
    Réponses: 2
    Dernier message: 16/06/2006, 13h13
  4. Quelle type d'image utiliser?
    Par kalash_jako dans le forum Autres langages pour le Web
    Réponses: 6
    Dernier message: 23/04/2006, 09h53
  5. Détecter le type d'un document
    Par gecka dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/08/2005, 08h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo