Connaitre le type d'un element

[Résolu]
Signaler
Messages postés
406
Date d'inscription
lundi 9 juin 2003
Statut
Membre
Dernière intervention
4 septembre 2013
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Bonjour

Je voudrais savoir si il y a un moyen simple de connaitre le type d'un element.
Soit fichier, soit repertoire, soit raccourci

Merci et bonne journée

12 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
tiens? salut...

récupère l'extension
LNK = > raccourci
autre (ou aucune), fonction getattr , ou API GetFileAttributes (pour ne pas avoir à faire de gestion d'erreur)

++

<hr size ="2" width="100%" />
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
Private Declare Function 
GetVersion 
Lib 
"kernel32" 
() 
As Long


Function 
IsWindowsVistaOrSup() 
As Boolean

    Dim Ver As Long, WinVer As Long
    Ver = GetVersion()
    WinVer = Ver And &HFFFF&
    IsWindowsVistaOrSup = ((WinVer Mod 256)
>= 6)
End Function





<small>
[../code.aspx?ID=39466 Coloration VB6, VBA,
VBS]
</small>






non?
Messages postés
406
Date d'inscription
lundi 9 juin 2003
Statut
Membre
Dernière intervention
4 septembre 2013
1
Bonjour PCPT
Dis donc ta competence n'a d'egal que ta rapidité a repondre :-)
J'suis super content de te parler à nouveau :-)

Merci pour la combine
En fait je cherchais a faire un test pour savoir si je suis sous VISTA ou non
Et j'ai vu que le dossier document and setting est un raccourci maintenant
Donc je me suis dit qu'en testant si c'est un repertoire, je saurais si je suis sous 2000/XP ou sous vista :-)
Pour etre plus certain je lis en plus la clef de registre

J'ai fait cette "glutte" dis moi ce que tu en pense

Private Declare Function GetFileAttributes Lib "kernel32.dll" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long



Private Sub Form_Load()
 MsgBox OsVista
End Sub



Private Function OsVista()
 
 Dim NomOs As String
 Set WshShell = CreateObject("Wscript.Shell")
 NomOs = WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName")
 
 If GetFileAttributes("c:\Documents and Settings") = vbDirectory Or InStr(UCase(NomOs), "VISTA") = 0 Then
  MsgBox NomOs + Chr(13) + Str(GetFileAttributes("c:\Documents and Settings"))
  OsVista = 0
  Exit Function
 End If
 
 OsVista = 1
 MsgBox NomOs + Chr(13) + Str(GetFileAttributes("c:\Documents and Settings"))
 
End Function
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
et si je change ma clé à la main, pour le fun.....

nan çà va pas du tout

y'a d'autres api..... dont une pour la version :p
je teste de suite, çà doit renvoyer 6 sous vista de mémoire, mais je ne sais pas pour seven.... peut-être 7
Messages postés
406
Date d'inscription
lundi 9 juin 2003
Statut
Membre
Dernière intervention
4 septembre 2013
1
Ouaillle yayaye !!!!!
Mais qu'est ce que je deviendrais sans toi ?????

En tout cas meme en forçant beaucoup, chose que je fais uniquement dans une petite piece carré ou on s'enferme...., jamais j'aurais pu pondre un code de cette classe :-(
Deux heures de travail, et mon code à coté du tiens, y ressemble justement a ce que je fais dans cette petite piece carré ou on s'enferme :-)
En plus, encore plus fort, le raccourcis "Document and settings" je viens de m'appercevoir que on peut l'effacer ......
Alors mon code t'as raison.....outre la clef il aurait pas servi a grand chose

Je te remercie mille fois de ton aide pour ce code qui va me servir presque tous les jours, malheureusement devrais je dire, car je deteste VISTA....mais bon .........bilou y m'a pas demandé :-(

Je te souhaite une excelente soirée
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
j'ai peu de mérite tu sais

l'API-Guid fournit des centaines d'exemples. c'est un indispensable
http://logiciel.codes-sources.com/logiciels/API-Guide-197.aspx

à bientôt
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Pour info, Windows Se7en c'est la version 6.1
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
ah? merci de l'info
tu en es bien certain?
vista : 6.0 (vérifié)
aurais-tu la numérotation de windows 2008 dans ce cas?...
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
salut,

6.1 c'est aussi 2008 srv (rc2, version 30 avril 2009)
6.0 c'est aussi 2008 srv (sp2, version 26 avril 2009)

et respectivement AUSSI 6.0 et 6.1 pour vista et seven

merci wikipedia
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Encore des développeurs fatigués qui ont fait ça ...
C'est d'une logique
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
vista et win2008 (rc1 donc) sont sur du nt6.0
win2008 rc2 et seven sur du nt6.1

pas de fatigue particulière, le winver / 256 nous donne les informations supplémentaires pour savoir quoi est quoi

mais de mémoire, avant cette fois, on a jamais eu de changement de minor sur le noyau durant les sorties d'une même "nouvelle" version d'un OS...

esperont qu'il n'y ait pas trop de versions dérivées de seven

<hr size="2" width="100%" />