Comment savoir si l'utilisateur est sous XP ou Seven?

YANN-56

XLDnaute Barbatruc
Bonsoir à tous, ou Bonjour suivant l'heure,

J'utilise "GetDetailsOf" pour dresser la liste des propriétés résumées d'un document Word.
(Ce qui est du même tonneau pour un Excel)

Comme le sujet de la discussion ci-dessous le démontre:
http://www.excel-downloads.com/forum/153645-getdetailsof-element-2-le-2-nest-pas-le-meme-chez-tous.html

Les n° d'Items sont différents!

J'ai pensé palier ce problème en adaptant mon code suivant le "Windows" utilisé.

Mais malgré moult recherches, je ne parviens pas à pomper son identité.

Mon application étant utilisée en réseau avec des versions différentes; c'est le désordre!

Si quelqu'un a une idée; je lui serai très reconnaissant.

Merci par avance,

Yann
 

fhoest

XLDnaute Accro
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonjour Yann56,

Regarde ici
A bientôt;)
Fred.
 

YANN-56

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonsoir à ceux qui passeront par ici,

Bonsoir et grand Merci Fred.:):):)

Je n'ai pas testé car mon lit me réclame avec trop d'arguments.

A la lecture, je pense que c'est là le bon code.
Au saut du lit, je vais m'appliquer à le traduire pour ce dont j'ai besoin.

Je ne vais pas manquer de te tenir au courant.

Amicalement, et à demain.

Yann
 

YANN-56

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonjour Fred et à ceux qui passeront par ici,

Faute d'avoir été capable d'adapter le code proposé par Fred, je suis passé par la porte de derrière!:rolleyes:

Code:
'Nécessite d'activer la référence Microsoft Shell Controls and Automation
Private Sub CommandButton1_Click()
    Dim DOCUMENT As Shell32.Folder
    Set DOCUMENT = CreateObject("Shell.Application").Namespace(ThisWorkbook.Path)
For i = 0 To 34
    If DOCUMENT.GetDetailsOf(DOCUMENT.Items, 10) = "Titre" Then
       MsgBox "Windows XP"
       Exit Sub
    End If
    If DOCUMENT.GetDetailsOf(DOCUMENT.Items, 21) = "Titre" Then
       MsgBox "Windows 7"
       Exit Sub
    End If
Next i
End Sub
J'ai utilisé la comparaison avec "Titre", puisque "Auteur" est passé au pluriel depuis Vista!
(Ceci pour éviter un "Or")

Merci encore à Fred d'avoir regardé et bonne journée à tous.
Ci-joint le Classeur au cas où il puisse servir à quelqu'un.

Amicalement,

Yann
 

Fichiers joints

Paritec

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonjour Yves:eek: fred:eek: le forum
Juste pour te saluer mon cher Yves, trop rare Yves dirais-je même, et te dire que les retraités de l'Ouest qu'est-ce qui se couchent Tôt !!!!!
Cela va engendrer une réponse Word normalement!!!!
amicalement
Papou:eek:
 

YANN-56

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonsoir Fred, et à ceux qui passeront par ici,

C'est effectivement efficace!

Cependant mon but était de récupérer automatiquement le nom de la version,
car la suite du code doit en tenir compte sans autre manipulation.

Par exemple:
Si c'est XP, les Commentaires seront récupérés ainsi:
Code:
DOCUMENT.GetDetailsOf(DOCUMENT, 15)
Si c'est SEVEN, les Commentaires seront récupérés ainsi:
Code:
DOCUMENT.GetDetailsOf(DOCUMENT, 25)
Mais peut-être il y a-t-il matière à simplifier ma bidouille via ton idée?
Je ne sais pas.

Amicalement,

Yves
 

fhoest

XLDnaute Accro
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Re,
je ne sais pas si on peut trouver une solution via ce que j'ai proposé mais ceci dit lorsque j’exécute le code de ton fichier j'ai le msgbox version xp hors je suis sur vista donc malaise...
A bientôt (ps je cherche de mon coté)
 

YANN-56

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Re Fred,

Etrange !!!

J'ai mis en page 2 du Classeur, ce que j'ai récupéré à cette adresse:
GetExtFileProperties() - Get Extended File Properties / Attributes of Files - KiXtart.org - official site

J'ai testé sur mon Ordi de bureau et sur mon NetBook.
Le premier est sous XP, le deuxième est sous SEVEN, et il n'y a pas de confusion suite à mes tests.

Je vais aussi chercher à comprendre, car cela est important pour la suite de mon appli.

Merci pour ta ténacité,

Yves

P.S. J'ai eu entre les mains un code qui dressait la config totale d'un pc;
mais je n'arrive plus à le retrouver dans mes archives!:mad: ..... Je fouille :p
 

Fichiers joints

Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonsoir Jean-Claude et à tous,

C'est fou comme tout "Fonctionne" mieux quand on sait y faire!

Il faut absolument que j'apprenne à me servir des Fonctions!!!

Cela fonctionne à merveille!

Merci beaucoup à toi et Fred. :) :)

Amicalement,

Yann
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonjour à tous,

Pour améliorer la fonction, la rendre volatile.

Et puis un petit Array :

Code:
Public Function Version_Windows() As String
    Dim version As String
    Dim os As OSVERSIONINFO    'reçoit les informations de version
    Dim retval As Variant    'valeur de retour
    Dim a
    Application.Volatile
    os.dwOSVersionInfoSize = Len(os)    'définir la taille de la structure
    retval = GetVersionEx(os)    'les informations de version de Windows en lecture
    version = os.dwPlatformId & "." & os.dwMajorVersion & "." & os.dwMinorVersion
    a = Array("1.4.0", "95", "1.4.10", "98", "1.4.98", "ME", "2.3.51", "NT 3", _
      "2.4.0", "NT 4", "2.5.0", "2000", "2.5.1", "XP", "2.6.0", "Vista", "2.6.1", "Seven")
    retval = Application.Match(version, a, 0) 'position dans le tableau
    Version_Windows = "Unknown"
    If IsNumeric(retval) Then Version_Windows = "Win " & a(retval)
End Function
A+
 

Fichiers joints

Lone-wolf

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonjour à tous,

ça ne serait ps plus interessant de mettre le nom de la version aussi?

Xp edition familiale, professionnel avec Services pack 1, pack 2 etc. Pour Seven Seven edition familiale, home premium, professionnel, intégrale.


A+ :cool:

Amicalement
Lone-wolf
 

job75

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonjour Lone-wolf :rolleyes:

En effet le titre de la discussion aurait été mieux ainsi :

Comment savoir si l'utilisateur est sous XP ou Seven et l'âge du capitaine ?
A+
 

YANN-56

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Bonjour au participants, et à ceux qui passeront par là,

Bonjour Job, et Merci pour ton intervention judicieuse.:)

J'ai encore une fois pris la mesure de ce que j'avais à apprendre.
C'est super bénéfique pour la modestie et la motivation.


Il y a aussi deux points que j'aimerais souligner:
- Je regrette de ne pas avoir une bonne poignée d'années de moins, et de ne pas avoir découvert VBA plus tôt.
- Je me réjouis d'avoir gardé cette passion, alors qu'en retraite,
et loin des p'tits trucs que je tricotais pour, et hors de mes heures de boulot.

Cette gymnastique des neurones est certainement un bon remède contre la sénilité précoce!
Il devrait être remboursé par la sécu!!! ;)

Ta réponse à Lone-Wolf, que je salue au passage, tombe à point quant à l'âge du Capitaine.

Je vais mettre à la poubelle mon astuce peut fiable, et utiliser cette "Fonction",
avec l'une ou l'autre des deux versions.

Encore merci à vous, et plein de bonnes choses,

Amicalement,

Yann

P.S. Job, si tu repasses par là: Que veut dire: Application.Volatile ? ...Désolé d'abuser...
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Re Yann,

Que veut dire: Application.Volatile ? ...
Regarde l'aide VBA sur Volatile.

Avec cette instruction la fonction, dans la feuille de calcul, se comporte comme la fonction MAINTENANT.

Elle se recalcule chaque fois que la feuille est recalculée, en particulier à l'ouverture du fichier.

Sans cette instruction (voir fichier de JCGL) voici ce qui se passe :

- quand JC a créé son fichier, il était sous Win Seven, ce qui apparaît donc dans la cellule

- quand j'ouvre son fichier sur mon ordi avec Win XP la cellule n'est pas modifiée

- il faut que je la revalide pour qu'elle indique enfin Win XP.

A+
 

kiki29

XLDnaute Accro
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Salut, tardivement en complément voir aussi ici
 

Lone-wolf

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Re Job,

ce matin, je suis tombé sur un site où l'on traitait su même sujet, une des participants à mis un code de Frédéric Sigonneau, qui permettait d'avoir ces informations et bien plus.

Ors, le code que tu à proposé et celui de Yann n'affichent que Windows Seven.
C'est pour celà que j'ai fais la proposition. Comme d'habitude tu part au quart de tour sans montrer la moindre indulgence, la moindre sagesse ou intelligence. L'homme est instruit oui, mais à des milliards d'années lumière intelligent. Des milliards comme toi en sont la preuve vivante, il n'y a quà voir ce qui se passe dans ce bas monde. Je suis là pour apprendre mon grand ne l'oublie jamais et ça sa fait de moi quelqu'un de plus intelligent que toi.
 
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Comment savoir si l'utilisateur est sous XP ou Seven?

Merci Job,
je pense avoir compris l'avantage du processus.
Mes tests vont certainement me permettent d'assimiler........... A moi de bosser!
Je joins le résultat de mon regard dans le Fichier joint où j'ai ajouté
par le bouton la récupération de la version Windows suivant le code de JC
(Il en serait de même à l'initialisation de l'USF, voire dans "Workbook_Open"... Sauf Erreur)

Je vais en faire de même avec ta suggestion.

Mon but est d'écrire la soluce la plus accessible, car ce n'est pas que pour moi,
mais pour un p'tit jeune sympa qui devra, un jour, se débrouiller seul avec mon projet d'appli.

Amicalement avec mes respects pour ce que tu sais faire,

Je suis bien heureux de voir la richesse qu'a engendré ma question anodine.

Amicalement,

Yann

Vlan!!! Voici que kIki29 propose un lien à ce sujet!!!!! :)
Ma tête commence à bouillir comme une lessiveuse!
Vous voulez la mort de pépé ou quoi??? :mad:

Lone-wolf:
ce matin, je suis tombé sur un site où l'on traitait su même sujet, une des participants à mis un code de Frédéric Sigonneau, qui permettait d'avoir ces informations et bien plus.
Il aurait peut-être été bien que tu offres aux participants et visiteurs l'adresse de ce dont tu parles.
 

Fichiers joints

Dernière édition:

Discussions similaires


Haut Bas