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 :

Gestion de fenêtre, temporisation


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Août 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Gestion de fenêtre, temporisation
    Bonjour
    Première question au forum...
    Je démarre VB et il y a pour moi beaucoup d'inconnues...
    Avec des API, j'affiche en premier plan une fenêtre, puis j'essaie d'en positionner une autre devant, puis de mettre celle-ci en plein écran.
    Si je ne mets pas de tempo le fonctionnement est hiératique, avec des "Sleep" les effets sont pas beaucoup mieux. Par contre si je positionne des msgbox entre les instructions ça fonctionne...
    J'ai pas mal de développements à faire avec des envois de code clavier et de déplacements de souris et des gestion de fenêtre (objectif : faire un automate manipulant un logiciel) et j'appréhende ces problèmes de pause et de contrôle de ces envois de commande....
    Qui a l'astuce lumineuse!!! Merci beaucoup!
    Ci-dessous le code avec les 4 lignes d'exe (les modules et leurs déclarations en PJ)
    Bonne soirée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    '************ EXE du Form1 avec un bouton "Command16"
    Private Sub Command16_Click() '
        Call FocusWindow("e:\") 
           'MsgBox "1"
           'Call SetCursorPos(600, 600)
           'MsgBox "2"
           'Sleep 4000
        Call MaximizeTask("Calendrier - Microsoft Outlook")
           'MsgBox "3"
           'Sleep 4000
        Call FocusWindow("Calendrier - Microsoft Outlook")
           'MsgBox "4"
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Es-tu vraiment sûr d'être en VB.net ? Parce que ce tu affiches semble être beaucoup plus près de VB6 ou même de VBA. En principe, avec VB.net l'utilisation de l'API est grandement restreinte et le Call est pratiquement de l'histoire ancienne.

    Ou bien, je n'ai rien compris...
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    J'ai pas mal de développements à faire avec des envois de code clavier et de déplacements de souris et des gestion de fenêtre (objectif : faire un automate manipulant un logiciel) et j'appréhende ces problèmes de pause et de contrôle de ces envois de commande....
    Et bien si t ne sais déjà pas faire la différence entre tel ou tel langage de programmation ca risque de te prendre beaucoup plus de tps que prévu ...... et au passage je te souhaite bon courage....


    Qui a l'astuce lumineuse!!! Merci beaucoup!
    En programmation il n'y a pas d'astuce lumineuse ! Il faut se cultiver, se poser les bonnes questions, être curieux, imaginatif et faire preuve de discernement ...... ou penses-tu te situer dans tout ça ??? C'est la question à laquelle tu devras répondre avant de vouloir foncer tête baissée !

    +1 Clement.

    A+

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Août 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    c'est bien du VB6
    Désolé d'être arriéré et de n'avoir que peu de temps, peut-être ne suis je pas sur le bon forum. Juste dans ma boutique mon développeur qui n'a pas été initialement formé à cela (electro technicien) a développé beaucoup de choses sans formation (ce qui n'est pas une référence) mais après 24 ans d'expérience il se barre et le boss ne veux pas le remplacer, je m'attache donc à savoir au mieux comment les choses fonctionnent. Ma formation antédiluvienne est un dut d'info en...1985, les petits développements que je fais sont pour moi des outils pour le quotidien et non une fin en soi
    Question temps, je n'en ai pas beaucoup d'ou questionnement sur le forum, sait-on jamais...
    Tu comprendras Wallace que j'ai un peu de mal a avaler ta réponse
    bonne journée

  5. #5
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par VYVABN Voir le message
    Tu comprendras Wallace que j'ai un peu de mal a avaler ta réponse
    bonne journée
    Bonjour,

    Il est certains qu'au vue de la mauvaise passe que tu traverses, j'y suis allé un peu fort et je m'en excuse.

    Pour que tu puisses trouver une aide adaptée au langage, je ne pourrais que te conseiller de demander de l'aide dans le forum adapaté : http://www.developpez.net/forums/f28...b-6-anterieur/
    (Si un modérateur passe par ici, il serait judicieux de déplacer le thread d'OP en section vb6).

    Bonne continuation.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Je me permets juste une petite intervention. J'ai été amené à faire un automate de ce type (en Delphi). Effectivement, la difficulté principale est la temporisation. L'idée est de vérifier systématiquement après une action que le logiciel tiers a bien reçu l'action. Par exemple, après avoir envoyé une chaine de caractère dans un champ, lire le contenu du champ pour controle. Après ouverture d'une nouvelle fenêtre, attendre que la fenêtre soit présente avant de continuer. Une temporisation par un sleep est nécessaire mais pas suffisante. Pour ma part, j'avais un fichier de paramètre avec l'ensemble des informations nécessaires aux api pour contrôler le logiciel tiers (classes et/ou titre des fenêtres du logiciel tiers permettant de retrouver les handle de fenêtre à controler,raccourcis clavier par action, durée des timeout, durée des temporisation etc.). Bref, evitez de mettre en dur dans votre programme les titres de fenêtre que vous voulez contrôler.
    En espérant que cette intervention vous apportera un petit éclairage.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Août 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Merci ebastien pour un fil à suivre
    Excuses acceptées Wallace1, si tu te mets -1
    Merci pour la redirection, je vous ferai grâce du code que je doit passer en revue, j'ai juste l'impression d'être à poil devant l'Everest, sans entraînement depuis longtemps, et n'avoir que 2 semaines pour le gravir... je deviendrai donc un poil susceptible voir très désagréable quand on se f... de ma g... et qu'en plus ça fait marquer des points!!!
    Bon, pas grave, tout cela n'est qu'une question de paradygme!
    Bonne journée

  8. #8
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 171
    Points
    17 171
    Par défaut
    Salut VYVABN, bienvenue sur DVP

    Je n'ai pas pu lire correctement ta pièce jointe mon éditeur Word 2007 et surement trop vieux.
    Pour temporiser plutôt que d'utiliser un MsgBox, tu peux passer la commande Doevents ou mieux, je te propose une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Function PauseCourte(Optional DureR As Double = 1.55) As Boolean
    '-----Temporisation au 100éme de secondes (2 decimales) 1.55 = 1 Sc 55 centiémes. -------
    Dim Fin
    Fin = Round((Timer + DureR), 2) ' Définit l'heure de fin au 100éme de seconde
    Do While Timer < Fin: DoEvents: Loop
    End Function
    a ajouter dans ton module.Bas


    Exemple d'utilisation sur un formulaire un CommandButton et un Label (Propriété AutoSize = True)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Command1_Click()
    Label1.Caption = "Go"
    PauseCourte (2.25) 'Utilisation 2 Sc 25 centièmes
    Label1.Caption = "Fin de l'attente"
     
     
    PauseCourte 'Utilisation temporisation par default de 1.55 Sc
    Label1.Caption = "Go"
    PauseCourte (0.55) 'Utilisation
    Label1.Caption = "Fin de l'attente"
     
    End Sub
    Limitation: la pause courte doit démarrer impérativement avant 23h59mn59sc - DureR, pour une tempo égal à DureR, sinon......
    la tempo sera de 23h59mn59sc moins Durer.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Août 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonsoir ProgElecT
    Merci pour l'accueil!
    Je n'ai pas le temps d'essayer ça ce soir, dès que possible je mets en oeuvre et je te dis quoi!
    Le doc était composé des modules avec les déclaration d'API pour la gestion des fenêtres (pas exhaustif) et de constantes...
    Encore merci et bonne soirée

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Août 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonjour
    @ProgElecT
    Ta tempo est bien mais ne résout pas mes petits soucis. Lorsque je veux activer une fenêtre ou une fonction d'un logiciel tiers, je ne vois pas d'autres moyens que de contrôler que la fenêtre en question est active ou que la fonction à bien été effectuée... dans l'idée de ce qu'a exposé ebastien... et là... c'est le drame... lecture des registres et recherches d'infos en tout genre, plein de joyeusetés...
    Bonne journée à tous

  11. #11
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 171
    Points
    17 171
    Par défaut
    Salut

    A part pour le SetCursorPos , regardes du coté de Maximiser, Minimiser, Restaurer une fenêtre windows, le source que je propose est éprouvé, en y ajoutant d’éventuels PauseCourte bien que je n'en ai pas eu besoin dans mes programmes pour ce qui est de la manipulation de fenêtres.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Directeur technique
    Inscrit en
    Août 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2015
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Ok, je n'ai pas la possibilité d'être super réactif, j'éprouve plus avant et je reviens vers toi dans quelques temps
    bonne journée

  13. #13
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 171
    Points
    17 171
    Par défaut
    Salut
    Sans prétention, peut être que cette discussion surtout le post 10 pourrait être un complément pour permettre la capture de la fenêtre externe.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. Gestion des fenêtres
    Par Galaad dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/07/2006, 15h29
  2. [DELPHI6] et gestion des fenêtres windows
    Par Desraux dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 27/03/2006, 16h47
  3. problème de gestion de fenêtre
    Par clemsouz dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/11/2004, 14h35
  4. [Tcl/Tk] Gestion de fenêtre
    Par HRS dans le forum Tcl/Tk
    Réponses: 2
    Dernier message: 28/08/2004, 21h27

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