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

Windows Discussion :

Richedit - Version utilisé


Sujet :

Windows

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut Richedit - Version utilisé
    Bonjour,
    Comment obtenir la version de RichEdit utilisée sur un PC ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Points : 542
    Points
    542
    Par défaut
    Depuis un programme ou bien à la main ?
    "La forme même des Pyramides prouve que de tous temps, les ouvriers n'ont jamais pensé qu'à en faire de moins en moins."

    G. CLEMENCEAU

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    Disons à partir d'un code...

    Soit via une commande WinAPI... soit un test de fichier... peu m'importe !

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    Peut etre en testant la version de la DLL ?
    Ou l'existence d'un DLL ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Points : 542
    Points
    542
    Par défaut
    On peut s'en sortir en farfouillant dans les DLLs système :

    RICHED32.DLL (à partir de W95) -> richedit 1.0
    RICHED20.DLL 5.0 (à partir de W98/NT4) -> richedit 2.0
    RICHED20.DLL 5.30 (à partir de W2K/ME) -> richedit 3.0
    MSFTEDIT.DLL (à partir de WXP SP1) -> richedit 4.1+

    Attention : ceci n'est pas documenté par M$, donc pas officiel, donc pas garanti... Ceci dit, il n'y a, à ma connaissance, pas d'autre méthode, donc à toi de voir...
    "La forme même des Pyramides prouve que de tous temps, les ouvriers n'ont jamais pensé qu'à en faire de moins en moins."

    G. CLEMENCEAU

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 279
    Points : 1 179
    Points
    1 179
    Par défaut
    Ok Merci !

    Le code Purebasic pour tester la version de la DLL :
    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
    Procedure.s GetFileVersionInfo(File.s)
       Protected iLibrary.l, iFunctionInfo.l, iFunctionSize.l, iFunctionQry.l, *HoldVersion.l, HoldResult.l, HoldBuffer.l, HoldEmpty.l
       Protected HoldString.s, HoldReturn.s
       Protected *HoldInfo.VS_FIXEDFILEINFO
       iLibrary = OpenLibrary(#PB_Any, "version.dll")
       If iLibrary
          iFunctionInfo = GetFunction(iLibrary, "GetFileVersionInfoA")
          iFunctionSize = GetFunction(iLibrary, "GetFileVersionInfoSizeA")
          iFunctionQry = GetFunction(iLibrary, "VerQueryValueA")
          If iFunctionInfo And iFunctionSize And iFunctionQry
             HoldBuffer = CallFunctionFast(iFunctionSize, @File, @HoldEmpty)
             HoldReturn = Space(HoldBuffer)
             HoldResult = CallFunctionFast(iFunctionInfo, File, 0, HoldBuffer, @HoldReturn)
             HoldResult = CallFunctionFast(iFunctionQry, @HoldReturn, "\", @HoldEmpty, @HoldBuffer)
             *HoldInfo = AllocateMemory(SizeOf(VS_FIXEDFILEINFO))
             CopyMemory(HoldEmpty, *HoldInfo, SizeOf(VS_FIXEDFILEINFO))
             HoldString = Str(*HoldInfo\dwFileVersionMS >> 16 & $FFFF) + "." + Str(*HoldInfo\dwFileVersionMS & $FFFF) + "." + Str(*HoldInfo\dwFileVersionLS >> 16 & $FFFF) + "." + Str(*HoldInfo\dwFileVersionLS & $FFFF)
             CloseLibrary(iLibrary)
             FreeMemory(*HoldInfo)
             HoldReturn = Space(0)
             If HoldResult
                ProcedureReturn HoldString
             Else
                ProcedureReturn ""
             EndIf
          EndIf
          CloseLibrary(iLibrary)
       EndIf
    EndProcedure
    ProcedureDLL.s GetRichEditVersion()
    Protected path_system.s, dir.s
      path_system= GetEnvironmentVariable("Path")
      For i=1 To CountString(GetEnvironmentVariable("Path"),";")+1
        dir = StringField(GetEnvironmentVariable("Path"),i,";")
        If Right(dir,1)<>"\"
          dir+"\"
        EndIf
        ; MSFTEDIT.DLL (à partir de WXP SP1) -> richedit 4.1+
        If FileSize(dir+"MSFTEDIT.DLL")>0
          ProcedureReturn "4.1"
        ElseIf FileSize(dir+"RICHED20.DLL")>0
          version.s=GetFileVersionInfo(dir+"RICHED20.DLL")
          ; RICHED20.DLL 5.30 (à partir de W2K/ME) -> richedit 3.0
          If Right(version,3)="5.3"
            ProcedureReturn "3.0"
          ; RICHED20.DLL 5.0 (à partir de W98/NT4) -> richedit 2.0
          ElseIf Right(version,3)="5.0"
            ProcedureReturn "2.0"
          EndIf
        ; RICHED32.DLL (à partir de W95) -> richedit 1.0
        ElseIf FileSize(dir+"RICHED32.DLL")>0
          ProcedureReturn "1.0"
        EndIf
      Next
    EndProcedure
    
    Debug GetRichEditVersion()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. version de java utilisé par websphere
    Par javaweb44 dans le forum Websphere
    Réponses: 8
    Dernier message: 09/09/2009, 15h22
  2. version delphi utilisé pour un projet
    Par realkilla dans le forum EDI
    Réponses: 3
    Dernier message: 10/02/2009, 15h23
  3. Comment voir la version du client oracle utilisé?
    Par farenheiit dans le forum Administration
    Réponses: 11
    Dernier message: 28/06/2007, 11h40
  4. Quelle version DELPHI utilisé ?
    Par baltagi dans le forum EDI
    Réponses: 1
    Dernier message: 21/11/2005, 23h46
  5. Réponses: 4
    Dernier message: 03/11/2005, 16h16

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