Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Contrôle évènements - Javascript


Messages recommandés

Posté(e)

Bonjour a tous.

 

Je travaille actuellement sur un script en javascript.

 

Mon objectif est de lancer un .exe lors du lancement d'une application.

 

J'ai tenté d'utiliser l'évènement Onload. Lorsque l'appli se lance, onload permet ainsi, au chargement d'une des images comprises dans la page de l'appli, de lancer par la même occasion de le .exe que je désire.

 

le probleme est que des que je clique sur une fonction de mon appli, cela recharge la page de l'appli et ainsi sa relance le .exe. ainsi chaque fois que je clic sur un bouton de l'appli, le .exe se lance ce qui est gênant ...

 

Je souhaiterais savoir si qq1 connaissait un moyen ou une commande d'évènement qqui permette de lancer le .exe uniquement au premier lancement de cette appli afin que le .exe ne soit pas lancé systhématiquement automatiquement a chaque manipulation sur mon appli ?

 

merci pour votre aide :P je patauge un peu en java script ^^ je cherche a avoir un controle en fait sur le lancement de cet évènement pour quil ait lieu uniquement au lancement de mon appli la premiere fois.

 

:P

Posté(e)

Tu parles successivement de page et d'appli, de bouton et d'images, de Javascript et de .exe !?

Un script en Javascript ça reste à l'intérieur d'une fenêtre de navigateur alors je ne vois pas trop le rapport avec une "application" ni avec le lancement d'un .exe.

Pourrais-tu expliquer le contexte, s'il te plait ?

Pourrais-tu fournir les extraits de code correspondant aux différents éléments cités (onload, bouton, évènements, etc.) ?

Posté(e)

oki ^^ je te décrit le contexte ^^

 

je travaille sur un logiciel destiné a gérer un téléphone et les appels recus et émis depuis un poste informatique.

 

l'application dont je parlais est ce logiciel qui permet a lutilisateur de gérer les appels quil recoit et den émettre également. pour ma part, je travaille plutot sur la réception des appels. Lorsque le client recoi un appel sur son téléphone, il ya ce quon appelle une remontée de fiche, cest a dire que sur son pc apparait une fenetre qui alerte lutilisateur quil recoit lappel. cette fenetre appporte qqes fonctionnalités comme le décrochage ou le raccrochage ou le transfert dappel par exemple ce qui lui permet de gérer son téléphone depuis son pc. Une autre de ses fonctionnalités sur laquelle je travaille est de pouvoir lancer une application (un .exe quelconque) a partir dun bouton situé sur cette fenetre d'alerte. ce bouton, je peux le programmer moi meme pour définir le .exe exact que je veux lancer. ainsi si le client recoit un appel, il pourra ouvrir en un clic sur ce bouton un excel ou nimporte quelle base de donnée pour obtenir des infos sur son client quil a en ligne.

 

en ce qui me concerne, je cherche a automatiser le lancement de ce .exe lorsque la fenetre d'alerte apparait.

A la base, la fonction utilisée par le script qui gere ce bouton de lancement de .exe est la fonction onclik. ainsi lorsque le mec clik sur le bouton, ca lance l'application de son choix. Jai vu que la fonction onload existait et lorsque je remplace la fonction onlick par la fonction onload, cela lance ainsi automatiquement le .exe au chargement de la fenere d'alerte. seulement des que lon utilise un bouton sur la fenetre de l'alerteur, cela recharge apparament la fenetre dalerte et ca relance donc forcément le .exe ... en gros a chaque rechargement de la fenetre dalerte, ca lance le .exe.

 

Mon objectif, cest que lorsque le client recoi son appel, la fenetre dalerte apparait, et je cherche ainsi a ce que le .exe soit lancé au démarrage de l'alerte une seule et unique fois. je configurerais le bouton pour quil réagisse au clik apres afin que le client puisse lancer son .exe sil le souhaite manuellement. mais bon mon but est de le lancer au moins une fois tout seul quand l'appel est recu.

 

jespere que mes explications sont plus claires lol

 

je te montre qqes lignes qui me semblen,t les plus importantes pour que tu puisse voir par toi meme :

 

function GetDetail()

{

szCmd = "C:\\WINDOWS\\system32\\cmd.exe";

//alert (szCmd);

AlerterX.Exec (szCmd);

 

cette fonction permet justement de choisir le .exe a lancer lorsque l'alerte a la réception d'un appel a lieu. cette fontion est située dans le HEADER de la page HTML car cette remontée de fiche (ou alerte) se présente sous la forme d'une page html.

 

<IMG onclik="GetDetail()" style="Z-INDEX: 108; LEFT: 208px; POSITION: absolute; TOP: 80px"

src="Images/MiniFicheDossier.gif" width="23" height="26">

 

cette seconde ligne permet de faire appel a la fonction au dessus dou son interet. elle se situe dans le body du script.

 

comme tu peux le voir, la fonction GetDetail est appelée au clik sur le .gif situé dans la fenetre de l'alerter (ce .gif est le fameux bouton qui permet de lancer le .exe). mon but est de garder cette fonctionnalité de gérer le lancement du .exe au clik sur le bouton mais aussi de lancer la fonction uniquement au premier lancement de la fenetre d'alerte.

 

jespere que tout ceci te semble plus clair et que cela taidera a mieux maider. ^^

 

merci pour ton aide. :P

 

ece

Posté(e) (modifié)

bah alors ? 48 visualisations et aucun na une proposition a me suggérer ?? :P:P

 

je profite pour apporter une précision :

 

je pense que lutilisation dune variable pour garder en mémoire la 1ere activation de mon alerte. Mon idée serais que cette variable passe a 1 au chargement de la fenetre dalerte. Qu'une boucle de test vérifie létat de cette variable avant de lancer le .exe, de cette maniere on aurais le controle sur le lancement du .exe. Pour remettre a 0 cette variable, cest aussi délicat car je pense quil faut le faire quand lalerte disparait, cezst a dire lors de du raccrochage de lappel. tout ceci implique donc ainsi de déclarer et fixer a 0 cette variable ... ce que je sais pas trop comment faire et ou le faire dans le programme ... en gros, jai tetre une solution seulement je ne sais pas commen intégrer tout ca au programme existant ... :S

Modifié par ece
Posté(e)
j'espere que mes explications sont plus claires lol
En effet, c'est déjà plus clair. Il s'agit d'un outil de CRM. C'est du fait maison ou bien c'est un outil "connu" ? (open source ? documentation fournie ? API clairement définies ?)
Lorsque le client recoit un appel sur son téléphone, (...) sur son pc apparait une fenetre qui alerte l'utilisateur qu'il recoit l'appel.
Qu'est-ce qui déclenche l'apparition de cette fenêtre ? Un service Windows ? Une application qui tourne déjà sur la machine et qui attend un évènement ? Cette fenêtre, c'est une fenêtre de IE ? Une nouvelle instance de IE ou bien juste une nouvelle fenêtre ouverte par un window.open() ?
function GetDetail()

{

szCmd = "C:\\WINDOWS\\system32\\cmd.exe";

//alert (szCmd);

AlerterX.Exec (szCmd);

D'où provient cet objet AlerterX ?
Mon but est de garder cette fonctionnalité de gérer le lancement du .exe au clik sur le bouton mais aussi de lancer la fonction uniquement au premier lancement de la fenetre d'alerte.
"Premier" par rapport à quoi ? Par rapport au démarrage de l'ordi ? Par rapport au démarrage de l'outil de CRM ? Par rapport à l'appel entrant ? (si c'est par rapport à l'appel, pourquoi cette fenêtre s'afficherait plusieurs fois ?)
Posté(e)

Q1 ) il sagit dun logiciel développé par matra appelé TWP pour téléphony Web Portail. donc cest pas de lopen source. pour déverrouiller les services de ce logiciel, il faut des clés de déverrouillage payantes ... la documentation est fournie avec les cd dinstall du serveur, qui permet de gérer les utilisateurs de ces applications (utilisateurs pouvant etre ajoutés manuellement ou importé a partir de diverses bases de données, ce serveur propose bien sur pas mal de fonctionnalités), puis ils fournissent le cd dinstall des applications associées au serveur (appli pour les alertes, pour les appels, la messagerie ...). ils proposent plusieurs types dapplications et doivent etre déverrouillées via des clés pour pouvoir etre exploitées.

 

Q2) lalerter est une application du TWP. cest une application lancée sur la machine qui attend en effet un évènement (un appel entre autre) pour apparaitre sur lécran. il ne s'agit pas dune fenetre IE. Cest une simple petite fenetre html qui souvre en bas a droite de mon écran avec qqes boutons et qqes infos sur lappelant et une croix pour fermer la fentere si nécessaire. Il ya un icoone en bas a droite de ma fenetre qui me permet daccéder a cette fenetre (a cette application). celle ci souvre directement quand il y a un appel. je ne saurais pas te dire si cest un window.open() qui louvre. cest une tache lancée en fond sur windows qui réagit a un évènement.

 

Q3) je crois quil sagit tout simplement du fichier d'exécution de lalerter. ou il doit au moins sagir de l'exécutable pour le bouton douverture du .exe. en fait le .exe que lon programme au lancement est donné en paramètre dans la variable szcmd. alerterX est ensuite lancé avec l'arboresence du .exe a lancer en paramètre. je pense que alerterX est la pour apporter la fonctionnalité de lancement du .exe choisi a ce bouton dans lalerter.

 

<OBJECT id="AlerterX" codeBase="Class/AlerterX.cab#version=1,0,0,1" classid="CLSID:538R7039-350B-48E3-41A6-7BF34DA36A73" VIEWASTEXT>

 

Q4) alors lalerte se déclenche que lorsque lappel a lieu et elle reste active pdt tte la durée de lappel. Elle disparait et redevien un oonglet en bas a droite de windows quand la comunication se termine. moi je souhaites que le .exe soit lancé a chaque lancement de l'alerter de telle maniere a ce que le client ait la fiche du client qui lappelle qui saffiche automatiquement lorsque celui ci lappelle. comme la fonction onload lance le .exe a chaque chargement d'un des gif de la fenetre de lalerter, a chaque rafraichissement de la page, le .exe se lance. moi je souhaites que le .exe soit lancé que la 1ere fois ou apparait lalerte quand le client recoit un appel. donc en fait quand la client recoi un appel, lalerte se lance et je souhaites que le .exe se lance par la meme occasion en meme temps que lalerte. donc en principe chaque fois que le client recoi un appel dune personne, cela doit activer la fenetre d'alerte et lancer le .exe qui contiendra les données du mec quil a au tel (je lidentifie a partir de son numéro). donc le .exe doit etre lancé chaque fois que lalerte sactive, donc a chaque fois quil recoi un appel. comme je te lais dit, la fonction onload ma sort le .exe a cahque raffraichissement de la page html ... donc il me sort le .exe plusieurs fois durant un seul appel ce qui est genant ...

 

voila jespere avoir été le plus précis possible. :P

 

merci bcp :P

 

ece

Posté(e)

OK. En gros, on n'a pas trop de contrôle sur le fonctionnement de l'outil...

Si, au lieu de lancer le .exe directement, tu appelais un script qui vérifie si le .exe n'est pas déjà lancé avant de le lancer ?

Posté(e) (modifié)

en fait, le controle jessai de lavoir au niveau du code qui gere la remontée de la fiche.

 

lalerter apporte la possibilité de pouvoir configurer ce fameux bouton. pour ma part je veux utiliser ce bouton pour lancer un .exe mais jai la possibilité de la configurer pour aller chercher une base de donnée, ou bien lancer une url par exemple. comment ca marche, bah je vais dans le serveur et jattribue a un utilisateur un fichier .aspx qui défini la fonction qu'aura son bouton dans la fenetre dalerte. Dans les fichiers de lapplication de lalerter, jai une série de ces fichiers .aspx qui conjuguent du javascript du C et du html. chacuns de ces fichiers ont un format on va dire standard pour éaliser diverses fonctions comme celles que je tai cité. apres cest a moi de modifier qqes parametres dans le code pour choisir lurl ou la base de donnée ou le .exe que je veux lancer. ces fichiers sont adaptables et la doc explique quelles infos modifier. jai donc un controle dessus mais celui ci est limité (encore heureux que je me démerde un chouillat en html lol). qqe soit la fonction que je veux utiliser, celles ci sont programmées pour que cela se fasse au clic sur le bouton de linterface de lalerte. moi je veux lautomatiser. donc la doc cest mort a ce niveau lol car ces scripts sont pas réalisés pour ca ^^

 

alors pour ta suggestion, je pense quelle nest pas envisageable car si le client recoi un douvble appel, il doit avoir la fiche de ce second contact qui doit se lancer en parallele ... donc il faut relancer le .exe. en fait jpense que je me plante devenement déclencheur ... il faut que lévenement déclencheur soit la réception dun appel ou meme son décrochage et non lapparition de lalerter pour lancer le .exe ... en fait jai un peu de mal a voir se que jpeu faire dans ce bordel mdr jai limpression apres pus de réflexion que je tape pas dans la bonne zone du code car la je joue au niveau dun .gif de lalerter seulement lalerter nest pas représentatif de tous les appels recus ... le double appel, cest lexemple con qui fait que le .exe doit etre lancé une seconde fois malgré la présence initialement de lalerter ...

 

je vais me renseigner aupres de mon supérieur car je vois pas trop ou je peux taper niveau code a ce niveau ... :s le blem cest quil est pas la lol donc la misere XD me dépatouille tant bien que mal mdr :P

 

je sais absolument pas dans mon code ou se situe la détection de décrochage dappel ou de réception dappel ...

 

moi jdis que ce chieur de client aura du manuel et pi voila mdr :P ca au moins jle maitrise XD :P

 

sérieux jte tiens au courant car jpense que le .Exe doit etre lancé automatiquement a chaque décrochage dappel et une seule fois a ce moment ... tetre que le onload marchera ... mais je doit la placer au bon endroit dans le code et cest ca qui est laborieux XD

 

merci je look et jte tiens au courant :P

 

EDIT : jai discuté avec mon supérieur et en effet, pour automatiser ca, il faut grave taper dans le script et cest pas a ma portée. donc pour le moment, le .exe peut etre lancé manuellement a laide dun clik de souris et je le maitrise donc ca sera ainsi dans l'immédiat. néanmoins je continu a chercher pour automatioser ca car ca peut rester utile donc si tu a des tuyaux ... je continu a chercher des pistes ...

 

en fait je peux deja commencer par ne pas prendre en compte la possibilité du double appel qui complik a fond laffaire car il faudrais que l'évenement ne soit plus le lancement de lalerter mais direct le décrochage de lappel ce qui est warrior pour moi lol

jpart du principe que je recoi un seul et unique appel, cela lance lalerter et je lance ainsi a laide du chargement de la page html le .exe UNE FOIS. le soucis du onload est quil charge le .exe a chaque raffraichisement de la page html. je pense que cest une fonction intéressante a utiliser et je cherche donc toujours a lexploiter. je pense malgré tout que a ce niveau ta solution nest pas envisageable car imagine que pour une tierce raison, le .exe a été lancé manuellement par lutilisateur pour une raison quelconque, lalerter ne le lancera pas a nouveau avec les donées de lappelant quand lappel sera recu ...

 

je pense que lidée de mettre une variable reste intéressante. je texpose lidée en question :

 

- on créé une variable alerte quon met a 0 initialement.

- on teste cette variable quand lalerter est lancé.

si elle est a 0, cela veut dire que me .exe na pas été lané donc on le lance.

si la variable est a 1, on ne lance pas le .exe et on continu le programme.

La suite du programme, cest pour gérer le retour a 0 de la variable selon moi ... et cela ne peut se faire selon moi qua un evenement précis : la disparition de la fenetre alerter quand lappel se termine. donc une fonction du type Onunload.

- On teste donc cette fonction (je sais pas trop comment lol) :

si levenement est détecté, on remet la variable alerte a 0,

sinon on la laisse a 1

on poursuit ensuite le reste du script.

 

selon moi tout ceci peut etre fait dans la fonction getdetail qui gere deja le .exe a lancer ...

 

si tu as dautres questions ... je reste dans les parages pour y répondre ... :P

 

merci encore pour ton aide :P ^^

 

je sais pas si mon idée de te semble claire ... dans tous les cas je ne sais pas comment le mettre en oeuvre car cest de la conception de programme et je maitrise trop pas ^^

Modifié par ece
  • Modérateurs
Posté(e)

Bien qu'ayant tenté de lire attentivement l'ensemble de l'exposé, je ne crois pas avoir compris toutes les subtilités de ton problème. Mais, si tu veux gérer une variable de contexte pendant une session WEB, pourquoi ne pas utiliser les fonctionnalités d'un cookie pour la transporter le temps de la session ?

 

Ceci dit, je n'ai personnellement jamais réussi à mettre en œuvre un cookie... :P

Posté(e)
pourquoi ne pas utiliser les fonctionnalités d'un cookie pour la transporter le temps de la session ?
Ca pourrait "le faire" mais on n'a pas l'assurance que le composant de l'application qui va interpréter le code HTML réagira comme un navigateur et donc qu'il stockera les cookies convenablement (et il faudrait qu'on sache à quel moment est recréée la "session" corresondant au composant...)

En Javascript "habituel" les cookies passent par document.cookie, qui est en lecture/écriture. C'est assez tordu (on écrit un cookie à la fois, on lit tous les cookies accessibles par l'URL en cours en même temps) mais je pourrais expliquer aisément...

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...