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

VB 6 et antérieur Discussion :

[VB6] Code pour Mise à jour automatique [Sources]


Sujet :

VB 6 et antérieur

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut [VB6] Code pour Mise à jour automatique
    Bonjour,

    Je suis à la recherche d'un exemple de code source qui permettrait à mon application de se connecter sur une adresse http pour vérifier s'il existe une nouvelle version de mon projet.

    Quelle API faut-il utiliser pour se connecter à un site distant ?
    Comment configurer son site internet pour qu'il retourne une valeur (le numéro de version par exemple) à l'API / fonction ci dessus.

    J'ai effectué pas mal de recherche sur ce sujet, mais rien de très concret ... au mieux des codes sources VB.NET qui sont difficilement portables sur des plate-formes VB6.

    Je sais que ma demande est presque un projet à part entière, mais je pense qu'à plusieurs on peut faire quelque chose d'assez sympa qui pourra servir à tous ensuite.

    Merci d'avance

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    J'ai ça, à tout hasard

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub IntranetOuvrirLien()
    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run ("%windir%\explore.exe http://........ " & WScript.ScriptFullName)
    'Il faut ajouter la référence pour WScript
    'Dans Outils => Références, tu coches "Microsoft Scripting Runtime"
    End Sub
    et puis ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub OuvrirInternet()
    Dim NomAppli, AdresseHTTP
    NomAppli = "C:\Program Files\Internet Explorer\IEXPLORE.EXE "
    AdresseHTTP = "http://bastille.ville-grenoble.fr/"
    N = NomAppli + AdresseHTTP
    Call Shell(N, 3)
    End Sub
    Si ça fait ton bonheur...

    A+

  3. #3
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Ou aussi avec Winsock ou le composant "Internet Transfer Control".

  4. #4
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Je regarde ça merci !

    Sinon, j'ai trouvé un joli code source en VB.Net, mais je sais pas trop comment le convertir. Si quelqu'un si connait un peu

    Pour ce qui est de la source en VB.NET, je peux soit poster le source, soit donner l'url (si j'ai le droit ???).

    ++

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    j'ai egalement le meme probleme pour une mise a jour automatique, j'arrive a me connecter avec le code de ouskel'n'or, merci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub OuvrirInternet() 
    Dim NomAppli, AdresseHTTP 
    NomAppli = "C:\Program Files\Internet Explorer\IEXPLORE.EXE " 
    AdresseHTTP = "http://bastille.ville-grenoble.fr/" 
    N = NomAppli + AdresseHTTP 
    Call Shell(N, 3) 
    End Sub
    mais je n'arrive pas a mettre automatiquement mon mot de passe et d'utilisateur et a valider la feuille (pour msn par exemple)

  6. #6
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par marsup54
    Pour ce qui est de la source en VB.NET, je peux soit poster le source, soit donner l'url (si j'ai le droit ???).
    Si c'est une source libre de droit, tu peux la poster ici (en citant l'auteur si tu le connais)
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  7. #7
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Ci joint le lien vers le code source en VB.NET.

    Merci à l'auteur Eduardo Oliveira.
    http://www.codeproject.com/vb/net/autoupdate.asp

    La difficulté est de convertir ce source en VB6.

    ++

  8. #8
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    je me penche sur la question, ca m'interesse

    je vous tiens au courant
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  9. #9
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Merci de ton soutien !!!

    Je m'y colle aussi car j'ai d'autres idée à tester -> via ftp par exemple, mais cela nécessite forcément que ce service soit installé ...

    ++

  10. #10
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Est-ce qu'il est possible d'utiliser une dll VB.NET en VB6 ?
    Je suppose que cela dépend de la manière dont elle a été compilé.

    Si c'est possible, comment procéder pour utiliser cette dll (passage des paramètres, .....)

  11. #11
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Bon, j'y arrive, non sans mal

    C'est le controle de téléchargement en cours qui m'a posé qques problèmes en http (en ftp, c'est beaucoup plus simple, mais tout le monde n'a pas accès au ftp, donc je me suis entêté avec le http )

    Pouvez-vous tester CA et me donner votre avis

    Dans ce que j'ai trouvé, il faut télécharger la librairie olelib.tbl et copier le fichier olelib.tbl dans le répertoire system32

    Il y a peut-etre + simple, avis aux amateurs des API de wininet (le IBindStatusCallback m'a occupé un certain temps )
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  12. #12
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    J'ai oublié, mais mille merci à tous ceux dont j'ai récupéré un bout de code, je pense qu'ils se reconnaitront (et merci à moi, tiens, ca fait pas de mal, pour le temps que j'ai passé à chercher sur le net )
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  13. #13
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par marsup54
    Est-ce qu'il est possible d'utiliser une dll VB.NET en VB6 ?
    Le pb d'une dll VB.net, ce n'est pas multi-systèmes
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  14. #14
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Je teste tout ça et encore merci !!!

    Sinon, de mon coté, j'ai trouvé quelque chose qui permet de faire fonctionner des dll de VB.NET sous VB6 :

    http://msdn.microsoft.com/vbrun/vbfu...vbbestprac.asp
    http://msdn.microsoft.com/vbrun/vbfu...vbfusionio.asp

    J'ai installé le framework .NET sur mon poste, et je peux ajouter des références à mon projet.
    Je n'ai pas eu le temps d'aller plus loin pour l'instant.

    Je continue mes tests pour voir si cette méthode est viable.

    ++

    EDIT :

    Encore merci pour ton source.
    Par contre, j'ai quelques difficultés à le faire fonctionner !

    Faut-il ajouter des références particulières au projets ? Car il m'indique que des librairies sont manquantes, des méthodes sont introuvables, ...

    Il me manque dans tous les cas la librairie weblib.tlb qui semble être une librairie DELPHI !

    Merci d'avance pour ton aide !

  15. #15
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par marsup54
    J'ai installé le framework .NET
    c'est bien là tout le problème

    Citation Envoyé par marsup54
    Faut-il ajouter des références particulières au projets ? Car il m'indique que des librairies sont manquantes, des méthodes sont introuvables, ...

    Il me manque dans tous les cas la librairie weblib.tlb qui semble être une librairie DELPHI !
    As-tu installé la librairie olelid.tbl (en lien dans mon post précédent)
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  16. #16
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    marsup54 a écrit:
    J'ai installé le framework .NET
    En fait, je l'ai pas encore installé !

    As-tu installé la librairie olelid.tbl (en lien dans mon post précédent)
    Cette librairie ne pose pas de problème, elle est bien trouvé dans les références des différents projets.

    Par contre il me manque la référence weblib.tlb que VB cherche dans un répertoire du style :
    App.Path/Program Files/Delphi/ ....
    Ce doit être le répertoire où tu as installé Delphi sur ton poste.

    Je pense que si tu m'envoies cette librairie, cela devrait fonctionner.

    Sinon, si tu pouvais détaillé également comment tu procèdes car je ne vois pas trop à quoi sert le répertoire "AutoUpdate.exe" ?

    Je pensais qu'on avais juste besoin de la dll qu'on appellerait depuis le projet VB ... d'où le hic car même en n'ayant pas la librairie manquante, la dll que tu as compilé , devrait fonctionner !

    Merci d'avance pour ton aide !

    ++

  17. #17
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par marsup54
    Par contre il me manque la référence weblib.tlb que VB cherche dans un répertoire du style :
    App.Path/Program Files/Delphi/ ....
    décoche cette librairie, elle ne sert à rien dans ce cas et recompille la dll, c'est une erreur de ma part

    Le programme AutoUpdate.exe est l'utilitaire qui permet de télécharger les fichiers mis à jour, independament de ton appli

    Il peut etre télécharger par la dll (decommenter les lignes indiquées dans la fonction autoupdate) ou présent dans le répertoire de l'application
    Le code d'origine fonctionne ainsi, je n'ai rien inventé, et ca me parait etre une bonne solution
    Je retravaille ce programme pour le rendre plus convivial mais cette version fonctionne
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  18. #18
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Voici ce que j'ai fait :

    1) placer la dll AutoUpdateDLL.dll et la librairie olelib.tlb dans le répertoire "c:\windows\system32"

    2) Je lance le projet TestAutoUpdate.vbp que j'exécute et là j'ai désormais une erreur du type :
    Erreur d'exécution '429'
    Le composant ActiveX ne peut créer l'objet
    Faut-il effectuer un regsvr32 sur cette dll ?
    Je n'ai pas le framework .Net d'installer sur mon poste (du moins, je ne pense pas).
    Sur mon windows 2000 pro au boulot, j'en suis sûr !
    Mais sur mon XP Pro à la maison (d'où je teste actuellement), j'en sais rien .... comment on le voit ?

    Merci d'avance pour ton aide.

    ++

  19. #19
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Avril 2003
    Messages : 288
    Points : 165
    Points
    165
    Par défaut
    Je viens de recompiler la DLL sur mon poste et cela semble désormais fonctionner !

    Par contre, je me pose une question importante :
    -> Est-ce que cette DLL est portable ? Peux-t-on l'intégrer dans un package d'installation, et si oui, quels sont les effets de bord ?

    Merci Thierry pour ton super boulot !!!

    Je pense que ce source fera le bonheur de beaucoup de monde une fois corrigé!!!

    EDIT :
    Après download du fichier exe, j'ai une erreur du type :

    Erreur d'exécution '430'
    La classe ne gère pas Automation ou l'interface attendue.
    Que doit-il se passer une fois que le fichier est téléchargé ? A quel endroit devons nous gérer la copie du fichier mis à jour ?

    Merci d'avance

    Re-Edit :

    Je commence à comprendre comment tout cela fonctionne ! Désolé pour les questions ci dessus.
    Je testerai ça demain avec mon application.

    Juste une précision sur la mise à jour de l'executable.
    -> Comment écraser le fichier ".exe" par le nouveau alors que celui ci est en cours d'utilisation ?

  20. #20
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    je n'ai pas constaté cette erreur, il faudrait que tu m'en dise un peu plus

    Sans rentrer dans les détails, l'opération se déroule comme cà :

    - Ouverture de l'application
    - recherche Màj
    - si non, continue
    - si oui :
    - téléchargement de autoupdate.exe dans le répertoire de l'application (si valider dans la dll)

    - Lancement par la dll de autoupdate.exe (shell)
    - Fermeture de l'application

    - autoupdate télécharge les fichiers à mettre à jour dans le répertoire de l'appllication
    - autoupdate lance l'application mise à jour (shell)
    - fermeture de autoupdate
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

Discussions similaires

  1. Code pour mise à jour d'un fichier lié à un autre
    Par jj.bastin dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/03/2014, 18h02
  2. Réponses: 3
    Dernier message: 03/05/2011, 09h35
  3. [XL-2003] Code pour mise à jour TBC
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/04/2011, 08h36
  4. Réponses: 9
    Dernier message: 16/12/2010, 16h12
  5. [VBA-EXcel] Timer pour mise jour automatique
    Par Dos dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/09/2006, 20h36

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