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

WinDev Discussion :

Interargir avec une application externe


Sujet :

WinDev

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 116
    Points : 93
    Points
    93
    Par défaut Interargir avec une application externe
    Bonjour à tous les développeurs et développeuses,

    Je ne suis pas sur d'être dans la bonne rubrique mais je n'ai pas trouvé juste "WinDev".

    Je suis en train de développer une application sous WinDev.
    Une de mes classes doit pourvoir se connecter à un réseau(VPN) et faire des mises à jours automatiquement.

    Pour celà il faut que je lance une appli, et que dedans je puisse simuler la touche {tab} pour me déplacer puis la touche {enter} pour lancer le programme.

    Mon soucis est que {entree} ne fait fait pas de clic bouton.
    Je vois bien que le bouton se sélectionne et se déselectionne, mais ne se lance pas.

    Je commence par faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PROCEDURE lancerVPN()
    // Lancer l'application VPN
    // Detecter si l'application VPN est trouvé
    SI LanceAppli(cheminVPN,exeActif,exeBloquant)=Faux ALORS
    	Erreur("Le VPN est introuvable à l'endroit suivant : " + cheminVPN)
    	// Demander à l'utilisateur de renseigner le chemin du VPN
    	modifierCheminVPN()
    SINON
    	// Executer le VPN automatiquement
    	executerVPN()
    	Info ("VPN lancé")
    FIN
    et ensuite dans executerVPN :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    PROCEDURE executerVPN()
    ResHandleFen est un entier système
    ResHandleFen = SysFenHandle("VPN Client")
    SI ResHandleFen <> Null ALORS
    	// Attente du chargement de la calculette
    	Multitâche(50)
    	// Parcourir les champs
    	POUR i = 0 _A_ 2
    		EnvoieTouche("{TAB}",  ResHandleFen)
    		EnvoieTouche("{ENTREE}", ResHandleFen)
    			Multitâche(100)
    	FIN
     
    SINON
    	Erreur("Appli non trouvée")
    FIN
    Merci d'avance !!

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 116
    Points : 93
    Points
    93
    Par défaut
    Pour ceux que ça intéresse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    PROCEDURE lancerVPN()
    // Lancer l'appli VPN
    SI LanceAppli(FEN_AssistVPN.cheminVPN,exeActif,exeBloquant)=Faux ALORS
    	Erreur("Le VPN est introuvable à l'endroit suivant : " + FEN_AssistVPN.cheminVPN)
    	// Demander à l'utilisateur de renseigner le chemin du VPN
    	modifierCheminVPN()
    SINON
    	// Executer le VPN automatiquement
    	// Executer l'ouverture du VPN
    	executerVPN(True)
    FIN
     
     
     
     
    PROCEDURE executerVPN(ouvrir est un booléen)
    // Declarer les variables
    hwnd est un entier système = SysFenHandle("VPN Client")
    // Attendre l'ouverture du VPN Client
    Wait(50)
    // Determiner s'il faut ouvrir ou fermer le tunnel
    SI (ouvrir) ALORS
    	AppelDLL32("User32", "EnumChildWindows", hwnd, &EnumChildsO, 0)
    	// Fermer la fenetre
    	Ferme(FEN_AssistVPN)
    SINON 
    	AppelDLL32("User32", "EnumChildWindows", hwnd, &EnumChildsF, 0)
     
    FIN
     
     
     
     
    PROCEDURE modifierCheminVPN()
     
    // Declarer les variables
    Fichier est une chaîne
    // Sélection d'un fichier
    Fichier = fSélecteur("C:\","VPN","Selectionnez le VPN","Tous"+TAB+ "*.*" ,"exe",fCheminUNICODE)
    // Verifier que le chemin n'est pas nul
    SI (Fichier <> Null) ALORS
    	// Sinon remplacer l'attribut cheminVPN
    	FEN_AssistVPN.cheminVPN = Fichier
    	// Renseigner l'utilisateur que le chemin a été enregistré
    	Info("Le chemin du VPN à bien été enregistré : " + FEN_AssistVPN.cheminVPN)
    	// Relancer le VPN*
    SINON
    	Erreur("Chemin renseigné incorrecte")	
    FIN
     
    PROCEDURE EnumChildsO(hwnd32 est un entier système, lParam est un entier = Null )                                                                 
    Lg32 est un entier
    Ret32 est un entier
    sTitre est une chaîne ASCIIZ sur 255
     
    Lg32=AppelDLL32("User32", "GetWindowTextLengthA", hwnd32)
    Ret32=AppelDLL32("User32", "GetWindowTextA", hwnd32, &sTitre, Lg32+1)
    //Trace("Handle "+hwnd32+" : "+sTitre)
    // Determiner si le champ courant examiné est "Ouvrir le tunnel"
    IF (sTitre ~= "Ouvrir le tunnel") ALORS
    	// Simuler pression clic gauche
    	SendMessage(hwnd32, 513, 0, 0)
    	// Simuler relache clic gauche
    	SendMessage(hwnd32, 514, 0, 0)
    	RENVOYER False	
    END
     
    RENVOYER True

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Communiquer avec une application externe en Java
    Par Aude35 dans le forum Général Java
    Réponses: 1
    Dernier message: 25/07/2013, 16h41
  2. [WD14] Ouvrir un fichier avec une application externe via LanceAppli()
    Par Fastolph dans le forum WinDev
    Réponses: 13
    Dernier message: 28/09/2011, 09h26
  3. Réponses: 6
    Dernier message: 20/05/2010, 16h02
  4. Communication avec une application externe
    Par Lethal dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 27/02/2007, 18h30
  5. liaison avec une application externe.
    Par adicor dans le forum MFC
    Réponses: 8
    Dernier message: 05/05/2006, 14h32

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