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 :

Récupérer état mémoire, envoie ftp et service


Sujet :

VB 6 et antérieur

  1. #1
    Membre averti
    Inscrit en
    Août 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 56
    Par défaut Récupérer état mémoire, envoie ftp et service
    Bonjour !

    J'aimerais savoir comment récupérer l'utilisation de la mémoire physique (et virtuelle si possible) en VB.

    Aussi, je voudrais savoir comment envoyer un fichier avec Winsock ou/et Inet, car pour l'instant j'utilise le ftp de Windows en l'appelant avec un Call Shell

    J'ai essayé avec Winsock, mais j'obtiens une erreur :

    Wrong protocol or connection state for the requested transaction or request
    Et enfin, je voudrais savoir comment faire un service qui exécuterait mes commandes toutes les X minutes, car pour l'instant, j'ai fait le prog en Application et ça s'exécute grâce à un bouton.

    Merci beaucoup de m'aider svp !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Bonjour,

    Pour ce qui est du service, j'ai mis un lien il y a quelques jours vers un exemple complet.
    Pour ce qui est du ftp, Delbeke a mis à disposition un client utilisant le contrôle winsock. Fais un tour dans ses contributions.

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 56
    Par défaut
    Merci pour ta rapide réponse. J'ai trouvé ton lien pour le service, mais j'avoue que ça ne m'avance pas beaucoup

    En fait, j'arrive à créer un projet service, mais j'arrive pas à faire boucler mon programme toutes les X minutes. J'ai vu dans le prog du lien, quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Do 
     
    ' ******************
    				' It is main service loop. Here you may place statements
    				' which perform useful functionality of this service.
    				' ******************
    				' Loop repeats every second. You may change this interval.
    				'UPGRADE_WARNING: Impossible de résoudre la propriété par défaut de l'objet hStopPendingEvent. Cliquez ici : 'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'
    				'UPGRADE_ISSUE: Expression COM non prise en charge : Module methods of COM objects. Cliquez ici : 'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="5D48BAC6-2CD4-45AD-B1CC-8E4A241CDB58"'
    			Loop While VBNTSvc.Kernel.WaitForSingleObject(hStopPendingEvent, 1000) = WAIT_TIMEOUT
    J'ai je comprends pas trrop les arguments utilisés :s

    Pour le ftp, j'vais voir ça Merci !

  4. #4
    Membre averti
    Inscrit en
    Août 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 56
    Par défaut
    Pour le ftp , j'ai lu en peu ce qu'il a fait mais bon :s Je comprends pas grand chose et ça à l'air bien compliqué pour ce que je souhaite faire. Je veux juste me connecter, envoyer un fichier et fermer. Le plus simplement possible

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    L'argument est la fréquence de bouclage. Ton service exécute ce qui se trouve dans la boucle toutes les 1000 msecondes (1 sec.).

    Si tu veux déclencher une procédure/fonction à une heure précise, tu peux ajouter un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    '/ Pour une exécution à minuit
    If FormatDateTime(Time, vbLongTime) = "00:00:00" Then
    Pour le FTP, tu devrais je pense t'y pencher, ce n'est pas si compliqué, et tu seras confronté à d'autres problèmes si tu fais un truc trop simpliste : quid du fichier en cours de transfert (avancement), des coupures éventuelles etc. Le client de Delbeke gère pas mal d'évènements et de propriétés qui t'éviteront de te retrouver avec un programme gelé si il y a le moindre dysfonctionnement de ton client, du serveur, du réseau, du net...

  6. #6
    Membre averti
    Inscrit en
    Août 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 56
    Par défaut
    Je comprends pas comment utiliser le tout en gérant le temps de "pause".

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Ben :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Do
         'Si ma condition est vraie (si c'est minuit par exemple) alors
         '/ Ici ta procédure à lancer à 0:00 
     
     
    Loop While...
    Si tu veux exécuter ta procédure toutes les x minutes, récupére d'abord les minutes de la date système, puis déclenche ta condition par un modulo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ' A toi de récupérer les minutes de l'heure en cours, au format numérique
    ' ici condition valable toutes les 7 minutes
    If MinutesSysteme Mod 7 = 0 then
    Qu'entends-tu par temps de pause ?

  8. #8
    Membre averti
    Inscrit en
    Août 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 56
    Par défaut
    Ben en fait, j'ai un prog et je souhaite qu'il s'exécute toutes les X minutes .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Do
    
    Mon prog
    
    Loop (toutes les X minutes)
    Merci pour ton aide

    --

    Minute de la date système ? :


  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Tu as deux façons de faire ici, alors ça va dépendre de l'utilisation que tu veu en faire : si tu veux une exécution toutes les x minutes à compter du démarrage du service ou à compter d'une heure précise.
    Cela dit, je ne sais pas si WaitForSingleObject permet un intervalle aussi long que le nombre de minutes que tu veux (faut chercher), dans le cas contraire, tu peux utiliser (et améliorer) la condition décrite ci-dessus.
    Attention tout de même, la condition appliquée seulement sur les minutes risque de créer des problèmes suivant ton intervalle :
    Ex : si ton intervalle est de 1 sec et que tu as une condition remplie en arrivant à telle minute, dis-toi que ta procédure sera exécutée 60 fois (toutes les secondes). Il vaut mieux alors avoir une condition que tu délencheras toutes les xx:00 minutes.

  10. #10
    Membre averti
    Inscrit en
    Août 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 56
    Par défaut
    Tu as deux façons de faire ici, alors ça va dépendre de l'utilisation que tu veu en faire : si tu veux une exécution toutes les x minutes à compter du démarrage du service ou à compter d'une heure précise.
    Je voudrais qu'il s'exécute toutes les 5 minutes par exemple à compter du démarrage du service.

    J'ai essayé de faire ceci, mais le prog s'exécute tout le temps :s :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Do
     
    If Minute(Now) Mod 5 = 0 then
     
    'Mon prog
     
    End if
     
    Loop

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Ok,
    donc pour commencer essaye, sans mettre de condition particulière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Do
     'la procédure à lancer toutes les 5 minutes
     
    Loop While VBNTSvc.Kernel.WaitForSingleObject(hStopPendingEvent, 300000) = WAIT_TIMEOUT

  12. #12
    Membre averti
    Inscrit en
    Août 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 56
    Par défaut
    VBNTSvc n'est pas déclaré
    hStopPendingEvent n'est pas déclaré
    WAIT_TIMEOUT n'est pas déclaré
    Il faut que je les déclare ?

    ---

    Pour la mémoire j'ai trouvé ceci dans la FAQ mais j'ai une erreur :

    Citation Envoyé par FAQ
    http://vb.developpez.com/faq/?page=Systeme#ram
    Citation Envoyé par Erreur
    Tentative de lecture ou d'écriture de mémoire protégée. Cela indique souvent qu'une autre mémoire est endommagée.

  13. #13
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Citation Envoyé par seb974 Voir le message
    En fait, j'arrive à créer un projet service,
    Tu es sûr qu'il fonctionne ton service ?

  14. #14
    Membre averti
    Inscrit en
    Août 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 56
    Par défaut
    Comme je l'ai dit dans mon premier post, pour l'instant je fais tout ça dans un projet Application qui s'éxécute à l'aide d"un bouton. ^^

    Les commandes suivantes sont utilisables seulement dans le cas d'un service alors ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Do
     'la procédure à lancer toutes les 5 minutes
     
    Loop While VBNTSvc.Kernel.WaitForSingleObject(hStopPendingEvent, 300000) = WAIT_TIMEOUT
    Dans ce cas, j'essayerais ça demain :p Merci pour otn aide ! ^^

  15. #15
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    bonjour,
    concernant ta première question (mémoire) tu trouveras ce qu'il te faut sur ce lien
    A+

  16. #16
    Membre averti
    Inscrit en
    Août 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 56
    Par défaut
    Bonjour !

    J'ai déjà essayé, mais j'ai cette erreur pour la mémoire :
    Tentative de lecture ou d'écriture de mémoire protégée. Cela indique souvent qu'une autre mémoire est endommagée.
    Une idée pour "contourner" cette protection ?

  17. #17
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Citation Envoyé par seb974 Voir le message
    Les commandes suivantes sont utilisables seulement dans le cas d'un service alors ? :
    Tu veux dire que c'est tout ce que tu as !?? En effet, il te manque... quelques milliers de lignes de code pour en faire un service.
    Relis le post et le lien associé que j'avais mis à ce sujet.

  18. #18
    Membre averti
    Inscrit en
    Août 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 56
    Par défaut
    En fait, dans le lien, il y a plein d'erreur selon Visual Studio 2005, genre X n'est pas un membre de Y ou Z n'est pas déclaré :s

    J'ai déjà créer service débile, genre qui se lance et qui écrit dans un log : Le service a été démarré.

    Et quand on le stop, le service est stoppé est écrit dans le fichier log par l'intermédiaire d'Event Log.

    Je pensais donc que c'était pareil pour mon code qui pour l'instant s'exécute en appli grâce à un bouton. Mais normalement c'est le même code non ? Mis à part le fait que dans un service, il s'exécutera tout seul, sans intervention de l'utilisateur. Si c'est le même code, j'ai juste besoin d'un ptit Loop nan ?, mais je ne sais pas comment le faire boucler pour X minutes

    ---

    Edit :
    J'ai mis mon code dans le projet service (sans le faire boucler) et ça fonctionne très bien. Lorsque le service est démarré, il exécute toutes mes commandes. Reste plus qu'a le faire boucler.

  19. #19
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Par défaut
    Rassure-moi, tu es bien en VB6 ?

  20. #20
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Salut Phifi,
    J'crois pas que tu le reverra

Discussions similaires

  1. Envoie ftp
    Par lord anubis dans le forum Protocoles
    Réponses: 9
    Dernier message: 13/11/2014, 14h33
  2. [Mail] récupérer état de la checkbox
    Par aweb01 dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2006, 14h39
  3. [VB6] Récupérer chemin dans server FTP et naviguer
    Par ShortcutZ dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 26/07/2006, 00h03
  4. Récupérer adresse erronnée + envoi par mail
    Par Cid67 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/04/2006, 12h17
  5. Réponses: 9
    Dernier message: 19/11/2005, 01h06

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