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 :

Application en attente d'évènement [WD14]


Sujet :

WinDev

  1. #1
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut Application en attente d'évènement
    Bonjour...

    Voilà je ne sais si c'est possible et donc je ne sais pas sur quelle piste chercher.

    Je voudrais faire une application qui permet l'impression d'étiquette, jusque là pas de souci.
    Cette application aurais besoin de 3 paramètres afin de lancer l'impression d'une étiquette, là non plus pas de souci.

    Cette demande d'impression serai lancer par un autre programme.
    Je pars sur un exécutable séparé car cette demande d'impression pourrai être lancer de différente manière (pas obligatoirement d'un programme windev).

    Mon souhait serai de lancer le programme au démarrage de l'ordinateur et qu'il se mette en mode "écoute de demande". Le but étant de ne pas être obliger de lancer le programme à chaque demande d'impression (gain de temps)

    Je voulais savoir s'il est possible de faire un programme qui attend une demande d'impression avec passage de paramètre?

    J'espère que je suis clair dans ma demande et dans mes explications.

    Je suis preneur de toutes idées.
    Merci d'avance

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 353
    Points : 3 881
    Points
    3 881
    Par défaut
    Salut à toi,

    Ca c'est marrant, je viens de faire ce que tu veux et également sur les étiquettes

    J'ai trouvé plusieurs méthodes qui semblent fonctionner : TimerSys, Kernel32...

    Non testé en prod mais je pense que cela fonctionnera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TimerSys("procDetect", 100)
     
    Procédure procDetect()
    // Pour chaque fichier détecté, on lance la procédure "procFichier"
    fListeFichier(sRepTraitement + "\*." + sExtension, "procFichier", 1, frNonRécursif)
     
    Procédure procFichier()
    // Code qui va bien

  3. #3
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Bonjour..

    Donc dans ton cas tu utilise un timer qui vérifie périodiquement la présence de fichier dans un répertoire qui te sert de fille d'impression..

    Moi j'aimerai pouvoir envoyer un évènement au programme d'impression qui est en attente de cet évènement avec en plus un passage de paramètre..

    Mais si je ne trouve pas je pourrai toujours utiliser ta méthode

  4. #4
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 353
    Points : 3 881
    Points
    3 881
    Par défaut
    Dans ce cas, il faut peut être allé du côté de Postmessage(..) pour trouver l'inspiration.

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Si les applications qui communiquent appartiennent au même bureau (desktop) alors elles peuvent s'échanger des messages Windows.

    Tu peux utiliser le message WM_COPYDATA qui permet d'envoyer des données "arbitraires" vers un handle de fenêtre via la structure de données COPYDATASTRUCT.

    (type de données à transmettre: une chaîne de caractères, un buffer, une structure... )

    A ma connaissance, c'est un des rares messages de Windows (le seul peut être ?) qui permettent de transférer des données d'un processus vers un autre au moyen d'un message.

    Je ne connais pas de solution toute prête pour WinDev, mais je n'ai pas beaucoup cherché.

    Les mots clés pour une recherche:
    message, WM_COPYDATA, COPYDATASTRUCT
    _

  6. #6
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Bonjour et merci pour l'info..

    Je pensais à utiliser le protocole SNMP ainsi j'envoie mes infos par le biais du SNMP et ensuite je peux traiter les infos en interceptant les données SNMP

    Qu'en pensez-vous ??


    Citation Envoyé par =JBO= Voir le message
    Tu peux utiliser le message WM_COPYDATA qui permet d'envoyer des données "arbitraires" vers un handle de fenêtre via la structure de données COPYDATASTRUCT.
    Si j'ai bien compris on utilise des API windows mais je n'ai jamais utiliser les API donc je ne sais pas ou me documenter ni quoi chercher..
    Et encore moins les syntaxe à utiliser..

    Si quelqu'un veux bien me donner quelque explication.. Voir même un petit cours..

    D'avance merci

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Citation Envoyé par mail.spam Voir le message

    Je pensais à utiliser le protocole SNMP ainsi j'envoie mes infos par le biais du SNMP et ensuite je peux traiter les infos en interceptant les données SNMP

    Qu'en pensez-vous ??
    Je pense que c'est une approche originale (au sens de «différent des techniques habituelles») et je me demande pourquoi tu t'es intéressé au protocole SNMP...
    Peut-être le pratiques-tu par ailleurs ???

    Pour ma part je ne le pratique pas du tout.

    Mais si je comprends bien, il faudra que ton PC devienne un agent SNMP; donc il faut exécuter les services ad-hoc.

    Après, comment vois-tu la suite des opérations ?
    Ton application d'impression d'étiquette supervise les événements sur l'agent SNMP du PC et imprime les étiquettes sur réception d'un événement.
    Comment cet événement est-il généré à partir des applications "clientes" ?
    Comment penses-tu représenter (écrire dans l'agent ?) les demandes d'impression d'étiquette ?

    Pourrais-tu nous en dire un peu plus ?

    J'ai l'impression que, dans ton cas, la mise en place d'un système basé sur SNMP est un peu lourde.
    En revanche, ça peut fonctionner sur tout le réseau.
    _

  8. #8
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Salut...

    Je n'utilise pas du tout SNMP mais c'étais une idée (pour moi une idée comme une autre)...

    Mais après réflexion ça va être lourd à mettre en place car il faut ensuite que je fasse le trie des informations reçut (trie entre ce qui m'interresse et les autres trames SNMP du réseaux)...

    Je suis partie sur une autre idée basé sur l'exemple Observateur répertoire.
    En fin de compte je vais utiliser un fichier de demande d'impression avec les informations dont j'ai besoin. Et avec le FileSystemWatcher je peux savoir si un fichier est créé ou modifier (sans gestion de timer) ainsi dès que mon fichier de demande d'impresson est modifiée j'ai plus qu'à récupérer mes paramètres et ainsi lancer l'impression...

    Par contre si vous avez des informations sur l'utilisation des API je suis curieux de savoir comment ça marche et comment les utiliser et comment les paramétrer.

  9. #9
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 615
    Points : 841
    Points
    841
    Par défaut
    Bonjour,
    Tu as regardé du côté de l'exemple WDservice NT livré avec Windev
    Cela permet de lancer des programmes de manièere automatique et ensuite tu dis par exemple qu'il doit scruter toutes les secondes,...

    Gancau

  10. #10
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Un peu comme les timer mais je ne veux pas regarder toutes les x secondes mais plutôt attendre un évènement déclencheur

  11. #11
    Membre expérimenté Avatar de klbsjpolp
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 065
    Points : 1 322
    Points
    1 322
    Par défaut
    Une méthode simple pour échanger des données entre différents processus sont les memory map. C'est un peu lourd en Windev mais j'ai déjà vu quelque part une classe qui les gérait.

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Pour faire de l'interropérable simplement, pourquoi ne pas partir sur un webservice ? C'est très simple à faire en Windev, sur un schéma client/serveur et parfaitement indépendant de l'application cliente et la techno utilisée.

  13. #13
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Je ne connais pas du toout le sujet mais ça à l'air très intéressant..
    Peux tu m'en dire plus sur le sujet???

  14. #14
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,
    Citation Envoyé par mail.spam Voir le message
    ...

    Je suis partie sur une autre idée basé sur l'exemple Observateur répertoire.
    En fin de compte je vais utiliser un fichier de demande d'impression avec les informations dont j'ai besoin. Et avec le FileSystemWatcher je peux savoir si un fichier est créé ou modifier (sans gestion de timer)
    Où as-tu trouvé cet exemple "Observateur répertoire" ?
    Est-ce fourni avec WinDev, la LST ou autres ?

    Je n'ai que la version 12 de WinDev et je n'ai pas vu d'exemple qui porte ce nom...
    (Je serai très intéressé si tu pouvais nous en faire profiter. Merci)

    J'imagine que cet exemple doit aborder en profondeur la programmation de l'API Windows ce qui devrait satisfaire ta curiosité.

    Bon weekend à tous !
    _

  15. #15
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    C'est un exemple de la version 14, livré en standard..

    Cette exemple ne s'appuie pas sur le API Windows mais sur les Librairies .NET (Je crois que ça s'appelle comme ça). De ce que j'ai cru comprendre on intègre tout une série de classe .NET (dans mon cas c'est system) et on peux utiliser des fonctionnalité de windows.

    Mais pour l'instant j'utilise l'exemple Observateur répertoire, je ne le comprend pas...

  16. #16
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par vmolines Voir le message
    Pour faire de l'interropérable simplement, pourquoi ne pas partir sur un webservice ? C'est très simple à faire en Windev, sur un schéma client/serveur et parfaitement indépendant de l'application cliente et la techno utilisée.
    Euh... un petit commentaire amical.
    Qui dit WebServices, dit serveur Web à installer et maintenir + génération et déploiement du service.
    Sans doute le revers de la médaille !

    Au départ il était juste question d'une application qui écoute des événements envoyés par une autre application.
    Mais avec les WebServices tu ajoutes au tableau une infrastructure complexe... m'enfin... .


    _

  17. #17
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Ok...

    Je me documenterai quand même dessus, c'est utile de savoir que ça existe...

    Mais c'est vrai que dans mon cas c'est quand même super lourd à mettre en place...

    Je cherchais une solution simple à mon problème d'impression...

    (Et puis ça peux aussi me servir pour d'autre programme futur..)

  18. #18
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Merci beaucoup pour cette réponse rapide.

    Citation Envoyé par mail.spam Voir le message
    C'est un exemple de la version 14, livré en standard..

    Cette exemple ne s'appuie pas sur le API Windows mais sur les Librairies .NET (Je crois que ça s'appelle comme ça). De ce que j'ai cru comprendre on intègre tout une série de classe .NET (dans mon cas c'est system) et on peux utiliser des fonctionnalité de windows.

    Mais pour l'instant j'utilise l'exemple Observateur répertoire, je ne le comprend pas...
    Aie aie aie.
    Personnellement, je ne suis pas du tout enthousiaste à l'idée d'utiliser .NET.
    (je préfère éviter d'empiler de nombreuses de couches logicielles, quand c'est possible).
    Donc, tant pis pour cet exemple.
    _

  19. #19
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 801
    Points
    3 801
    Par défaut
    Par contre je suis toujours intéresser par des explication ou de la documentation (voir même les deux) sur l'utilisation de la solution de =JBO=

    Envoyé par =JBO=
    Tu peux utiliser le message WM_COPYDATA qui permet d'envoyer des données "arbitraires" vers un handle de fenêtre via la structure de données COPYDATASTRUCT
    .

  20. #20
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par mail.spam Voir le message
    Ok...
    ...
    Je cherchais une solution simple à mon problème d'impression...
    Même utiliser .NET ne me semble pas toujours "si facile".

    En effet, il faut toujours avoir un poste de travail à jour (c'est-à-dire, avoir au préalable installé toutes les bibliothèques logicielles):
    Déjà on installe le framework WinDev...
    Ensuite le framework .NET (et quelle version 1, 2, 3, 4... etc ???)...
    Et pourquoi pas divers autres composants ou services ???

    La technologie c'est certainement très bien !... Mais je constate que nos ordinateurs *aussi* souffrent d'obésité, et que ça s'aggrave !

    _

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 15
    Dernier message: 11/12/2008, 14h45
  2. Réponses: 1
    Dernier message: 18/04/2008, 17h07
  3. mise en attente d'évènements
    Par BigNic dans le forum C#
    Réponses: 1
    Dernier message: 07/12/2007, 16h22
  4. [TECHNIQUE]Attention aux évènements statiques
    Par joujoukinder dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 21/09/2006, 21h16
  5. mettre mon application en attente
    Par MissTech dans le forum C++Builder
    Réponses: 3
    Dernier message: 17/05/2006, 18h43

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