Shell32 et setup ?

Orthonic Messages postés 47 Date d'inscription mardi 9 avril 2002 Statut Membre Dernière intervention 7 mars 2008 - 25 juil. 2007 à 14:03
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 26 juil. 2007 à 10:14
Bonjour,

J'utilise ShellExecute de Shell32.dll pour lancer Acrobat Reader,
je ne sais si cette DLL viens de VB6 ou de Windows,
est ce que je dois l'inclure dans mon setup d'installation ?

Merci.

<!-- / message -->



Orthonic
www.act-emploi.be

11 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
25 juil. 2007 à 14:06
Bonjour,

Il s'agit là d'une librairie (shell32.dll) de windows.
Il est donc inutile de l'inclure dans le setup.
0
Orthonic Messages postés 47 Date d'inscription mardi 9 avril 2002 Statut Membre Dernière intervention 7 mars 2008
25 juil. 2007 à 14:14
Est ce qu'elle se trouve sur toute les versions de windows ?

Orthonic
www.act-emploi.be
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
25 juil. 2007 à 14:19
Voici ce que j'ai écrit, en matière de compatibilité de ShellExecute, dans mon outil personnel d'aide à l'utilisation des fonctions de l'Api de Windows :
VB4-32,5,6

Pour Windows NT 3.1 ou ultérieurs et pour Windows 95 ou ultérieur

Et je n'écris en général rien dans cet outil sans avoir d'abord vérifié...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 juil. 2007 à 14:27
dispo partout, le plus simple reste d'aller consulter la doc de ladite fonction,

http://msdn2.microsoft.com/en-us/library/ms647732.aspx

c'est jamais du temps perdu que de lire la doc MSDN...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
25 juil. 2007 à 14:28
je confirme, shellExecute est dans l'API standard de Windows depuis belle lurette !
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
25 juil. 2007 à 14:31
Bonjour RenField,

Je n'ai pas encore pu vérifier (puisque je n'ai pas Vista), mais il m'est rapporté un seul petit problème (que l'on peut facilement résoudre avec un patch) concernant la librairie Shell32.dll :
Il ne s'agit que des icônes qui y sont présentes (petits problèmes en cas de tentative d'extraction des dites icône, si l'on n'a pas installé le patch).
Une autre fois : je n'ai pas eu l'occasion (n'ayant pas Vista) de vérifier le bien fondé de ce qui m'a été dit à ce propos.

Tout le reste marche bien...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 juil. 2007 à 14:36
a voir, pas testé non plus ^^
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
25 juil. 2007 à 14:47
Voilà, pour les bonnes âmes qui, possédant Vista, ce qu'il convient de tester :

Sur une Form : une pictureBox Picture1 et le code suivant :

Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long


Private Sub Form_Activate()
    Me.AutoRedraw = True
    Picture1.Move 0, Screen.Height / Screen.TwipsPerPixelX, Screen.Width / 2, Screen.Height / 4
    Picture1.AutoRedraw = True
    Me.Move 0, 0, Screen.Width, Screen.Height
    Dim mIcon As Long, nb As Integer, saut As Integer, retour As Integer
    'Extraction des icônes du fichier shell32.dll et dessin de ces icônes dans picture1
    For Cnt = 0 To 200
        ExtractIconEx "shell32.dll", Cnt, mIcon, ByVal 0&, 1
        DrawIcon Picture1.hdc, 32 * nb, saut * 32, mIcon
        DestroyIcon mIcon
        nb = nb + 1
     If nb = 19 Then
            saut = saut + 1
            nb = 0
            retour = 0
        End If
    Next
    CurrentX = 0
    CurrentY = Picture1.Top / 3
    Me.FontSize = 20
    Me.FontBold = True
    Me.Print "Icônes extraites avec ExtractIconeEx"
 
 
    'on extrait l'icône associée à un fichier
    mIcon = ExtractAssociatedIcon(App.hInstance, "C:\recycled", 2)
    'on va maintenant afficher cette icône sur la Form
    DrawIconEx Me.hdc, Screen.Width / (4 * Screen.TwipsPerPixelX), Screen.Height / (2.5 * Screen.TwipsPerPixelY), mIcon, 0, 0, 0, 0, DI_NORMAL
    DestroyIcon mIcon 'on libère la mémoire de cette icône
    CurrentX = 500
    CurrentY = Screen.Height / 2.8
    Me.Print "Icône extraite avec ExtractAssociatedIcon"
End Sub


Ceux qui, possédant Vista, voudraient bien tester et me dire le résultat me permettront de compléter mes connaissances sur cet aspect.
Je les guiderai alors vers le patch qui semble nécessaire et leur demanderai de retenter l'expérience, pour voir...

Pardonnez cette diversion, mais elle peut être utile à tous (je "recense", de mon côté)...
Merci à ceux qui voudront bien...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
25 juil. 2007 à 14:59
Euh...
Mon copier/coller m'a "bouffé" des constantes et quelques déclarations !!!!!

Les voilà donc :
Const DI_MASK = &H1
Const DI_IMAGE = &H2
Const DI_NORMAL = DI_MASK Or DI_IMAGE
Private Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal hIcon As Long) As Long

Private Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociatedIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long
Private Declare Function DrawIconEx Lib "user32" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long
Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
26 juil. 2007 à 09:28
A ouai ça c'est de la question : "Shell32.dll viens de VB6 ou de Windows" !

Brunews serait la il aurait peté un câble et franchement je suis pas loin. Je sais pas moi quand on s'attaque à la programmation on s'interesse un peu a ce qu'il y a autour. Quand on ce met au velo on regarde comment il est fait avant de sauter sur la selle : c'est ou la pedale, à quoi sert la chaine, pourquoi ya un guidon !

On dirait que les mecs utilise vb comme il utilise msn ! "A bah c'est bien on tape des truc puis ça le fait!"

Bon ok, Orthonic aura un peu pris pour tout les autres mais quand même soyons serieux une minute. Franchement je remercie ceux qui ont pris la peine de repondre à la question car il ont du courage.

@+

E.B.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 juil. 2007 à 10:14
Et oui, malheureusement, VB a cette réputation d'être un langage pour débutant, et à la vue des questions du moment (comment on fait un if, comment faire un exe qui marche partout, etc.), je comprends que les entreprises dévalorisent le VB !

Mais je te rassure, j'en vois des vertes et des pas mûres aussi sur javafr !
0
Rejoignez-nous