Salut je me demande si il est possile depuis un sereur http de détecter un click et autres entrées au clavier d'un client sur une des pages html du sereur.![]()
Salut je me demande si il est possile depuis un sereur http de détecter un click et autres entrées au clavier d'un client sur une des pages html du sereur.![]()
Oui. Un peu de javascript (xmlhttp) ferait l'affaire.Envoyé par korntex5
Mais il faudra ré-écrire les liens (ajouter l'évènement onclick) pour lancer une requête synchrone ou asynchrone sur le serveur afin de le prévenir de ce qui vient de se passer sur le client.
Curieuse demande en tout cas.![]()
tu peux regarder chez sutekidane tu as des exemples pas mal du tout.
En effet.Envoyé par nova-id
A propos, quel rapport avec Delphi ?
korntex5, tu veux que je déplace le sujet ?
En effet il y a quand même bien un rapport avec delphi, je me demande si je peux rendre mon applis win32 accèssible depuis le web sans refaire toutes mes forms...
Et je me suis dit que si je générai un html contenant une image de ma form et que si mon serveur http savais ou le client clique et ce qu'il écrit alors je pourrais sur le serveur déclencher les événements....
Un peu boiteux je l'avoue![]()
Autrement j'ai trouvé un composant FORM to HTML converter
http://www.href.com/f2h
mais je ne sais pas ce que cela vaut et puis c'est payant...
Selon moi, tu n'auras pas d'autres solutions que d'utiliser Javascript pour la détection des actions du client si tu prévois que les utilisateurs puissent utiliser n'importe quel navigateur pour afficher ta page.
- Maintenant, si tu utilises Delphi pour programmer ton propre navigateur, c'est différent et tout devient beaucoups plus facile / performant, car le problème avec Javascript, c'est qu'il peut être désactivé par le client... Ajax, c'est pareil.
- Reste une dernière possibilité, programmer un service transparent que les utilisateurs accepteront d'exécuter. Celui-ci surveille les actions de l'utilisateur (clavier & souris) et renverrait ces infos au serveur.
- Un petit bémol tout de même à tout ça, c'est qu'à partir du moment où il s'agit d'un programme Delphi (win32), ton application n'est plus multi-plateforme. J'espère avoir bien saisi ta demande, à+
et bien pour la platteforme ce ne sera qu'une platteforme windows.
ta solution de service tranparent m'interresse mais comment ça marche sous delphi? peux tu m'en dire plus?
Trouve tu cette solution d'image dans l'html un peu comme pour un vnc viable?
C'est déjà ça si tes utilisateurs utilisent exclusivement Windows. Tu peux donc réaliser un programme Delphi en te basant par exemple sur cette démo. Elle te permet, avec un Timer, de récupérer les actions souris + clavier de l'utilisateur. Tu peux très bien réaliser ce programme sans afficher de form (transparent). Tu peux également lancer ce programme au démarrage de windows (service). Tu peux envoyer ces infos au serveur en exécutant une url par exemple (démo). A propos, j'ai développé un système un peu plus évolué pour exécuter des urls et simuler le post de formulaire, uploader et downloader des fichiers, etc... -> DELPHP. Maintenant, tout dépend de :
• La fréquence à laquelle tu veux envoyer ces infos
• Ou bien, possèdes-tu un événement pour l'envoi des infos ?
• Comment comptes-tu récupérer ces infos sur le serveur ? (php ?)
Explique-moi un peu mieux ce que tu veux faire stp. Il existe peut-être d'autres approches plus "propre".Envoyé par korntex5
Et bien en fait j'ai u ne appli win32 qui attaque une base de onnée et fait des tats......
Je souhaite permettre à quelqu'un qui lance un internet explorer depuis n'importe ou sur le net de se connecter à mon exe qui pourrait contenir un serveur http, et qui pourrait utiliser l'applie comme si il était sur le poste.
Comme j'ai pas envie de me retaper tout mon prog, je me suis dit que je pourrais faire comme un VNC:
La personne se connecte via internet explorer au serveur http, et le serveur génère une page http avec une image jpg ou autre de mon programme sur le serveur, et c'est cette page qui s'affiche chez le client.
lorsque le client bouge sa souri dans la page html et écrit du texte, le serveur détecte tout et le simule sur l'applie du serveur...
Mais bon ptet que cela ferai trop d'images a afficher et donc a échanger
autre solution je pourrai avoir une page html sur laquelle le client se connecte, laquelle permettrait de télécharger mon prog, qui contiendrai un client tcp pour communiquer avec le serveur.
Permettant ainsi au client de se connecter à la base de donnée sur le serveur via internet...
Petit hic j'utilise bde et je sais pas comment rendre la connexion transparente pour les composants delphi...
Il y a une solution universelle,
TSE ou Citrix, mais c'est payant![]()
Yop !
Ben moi je trouve pas ça bête : mais c'est toi qui va écrire cette page html à partir d'une image de ton appli, ...La personne se connecte via internet explorer au serveur http, et le serveur génère une page http avec une image jpg ou autre de mon programme sur le serveur, et c'est cette page qui s'affiche chez le client.
C'est la fonction de l'option Map sur image dans page html (ou qqchse comme ça, un spécialiste html répondra mieux sur ce point).lorsque le client bouge sa souris dans la page html et écrit du texte, le serveur détecte tout et le simule sur l'appli du serveur...
Et pour peu que tu aies créé une map un peu similaire du côté de ton appli (idée générale), ou une table de correspondance, ça devrait le faire, je crois.
Et ça ne fait qu'une image.Mais bon ptet que cela ferai trop d'images a afficher et donc a échanger
Valà,
--
jp
C'est bien possible, 1 image à télécharger à chaque action, voir plus; Faudrait voir le comportement du programme. Mais sinon, il suffirait d'actualiser l'affichage à chaque action de l'utilisateur (si c'est suffisant).Envoyé par korntex5
1) Côté client : Capturer les actions souris / clavier du client
2) Envoyer ces informations vers ton programme
3) Côté serveur : Réceptionner les informations
4) Reproduire ces actions sur ton programme
5) Ton programme effectue ses traitements
6) Détecter la fin des traitements
7) Faire une capture d'écran du programme
8) Eventuellement, convertir la capture au bon format
9) Renvoyer l'image au client
10) Côté client : Réceptionner l'image et l'afficher
11) Recommencer
Je trouve cette approche plus propre. Je pense que c'est mieux surtout que plusieurs utilisateurs pourront travailler simultannément, ce qui n'est pas forcément le cas dans un VNC...autre solution je pourrai avoir une page html sur laquelle le client se connecte, laquelle permettrait de télécharger mon prog, qui contiendrai un client tcp pour communiquer avec le serveur. Permettant ainsi au client de se connecter à la base de donnée sur le serveur via internet...
Désolé, je ne connais pas ces compos. Si tu n'as pas lu mon tuto, j'utilise des scripts PHP pour accéder aux bases de données. Cela évite de devoir installer bde sur la machine cliente. Surtout que PHP est un langage serveur puissant, cela me permet de faire un tas de chose sympa.Petit hic j'utilise bde et je sais pas comment rendre la connexion transparente pour les composants delphi...
La deuxième solution pose un problème auquel je ne trouve pas de réponse:
tout mes composants d'accès à ma base de données sont ratachés à un TDatabase et je ne sais comment lier mon tdatabase à la vraie base de donnée au travers d'internet et au travers de mon serveur delphi
Pourquoi ? Je ne comprend pas : C'est ton propre serveur ou c'est un hébergeur ?Envoyé par korntex5
[EDIT] Sinon, le souci avec ces compos justement, c'est que selon les hébergeurs, les bases de données ne sont pas accessibles de l'extérieur. C'est principalement pour cette raison que j'utilise des scripts serveurs pour accéder à mes bases de données distantes. De plus, cela évite à l'utilisateur de devoir installer BDE sur sa machine et au programme, de devoir utiliser un installeur. Sans compter qu'avec certains composants SGBD, la base de données est téléchargée en totalité sur le poste client pour être accessible en local... Et dernier point : Tu es obligé d'intégrer le login d'accès, ainsi que toutes les requêtes dans ton programme compilé. Ma méthode est plus sécurisée puisque le login d'accès reste sur le serveur et les requêtes également. Seuls les paramètres des requêtes sont envoyés par le programme Delphi. Bref, il n'y a que des avantages à utiliser cette technique. En prime, j'ai ajouté un espace membre pour protéger l'accès des scripts. Par contre, évidemment, cela nécessite d'avoir un minimum de connaissances en langage script malgré que PHP est le langage le plus facile que j'ai jamais connu...
à+
Ta solution est très interessante et je pense m'en inspirer pour un projet que j'ai en tête, mais elle m'oblige a remanier tout mon code de manière majeure...
En résumé, j'ai un logiciel nommé "A" qui attaque une bd sur un réseau via database et bde, question: est il possible d'attaquer cette base via internet sans avoir à refaire tout mon prog:
Je penssai créer une appli cliente qui se lancerai ou se téléchargerai depuis un lien http, et qui se connecterai à mon appli serveur.
cette appli serveur doit elle être capable de piloter mon application "A" et de retourner au client les informations graphiques de "A"
Pour cela je penssai que cette appli serveur pourrai être totalement intégrée a mon appli "A", elle scruterai en permanence quelle form est affichée et transfererai sous forme texte, la description type .dfm de cette form, ce qui permet à l'appli cliente de recréer une form identique et d'afficher la fenêtre.
en retour lorque l'appli cliente détecte un click a un endroit elle transmet x et Y au serveur lequel simule le click sur l'appli "A", ce qui change l'affichage de "A" et oblige le serveur à renvoyer au client le nouveau dfm, ainsi de suite
Je sais je suis ptet pas très clair mais le système pourrait être très interressant qd au portage d'appli delphi win32 au travers du net sans tout réécrire...
Par étape.Oui, tu peux réaliser un nouveau programme qui se chargera de faire l'intermédiaire...question: est il possible d'attaquer cette base via internet sans avoir à refaire tout mon prog
Effectivement, le système peut être intéressant. Il est tout à fait possible de recréer la form en enregistrant le dfm dans un fichier que le programme client téléchargerait et appliquerait à lui-même pour restituer l'interface utilisateur du programme serveur. Mais j'ai peur que cela soit compliqué à réaliser, peut-être bien plus compliqué que de recoder l'appli. Cela dit, il faudrait se renseigner pour voir si cela n'existerait pas déjà.le système pourrait être très interressant qd au portage d'appli delphi win32 au travers du net sans tout réécrire...
Quoiqu'il en soit, il ne faut pas oublier que ton appli devient dans ce cas mono-utilisateur -> Un seul et unique utilisateur pourra se connecter à ton serveur et utiliser le programme serveur. Est-ce bien ce que tu veux ?
Et je voudrais être sûr: Tu héberges toi-même ta base de données n'est-ce pas ?
exactement tu as mis le doigts sur le point faible de mon idée et pour l'instan pas de solution et qd a mon systeme client serveur je sais comment faire et je pourrai vous faire ptet un tuto mais je sais plus ou j'ai mis le log et pass de mon espace su dev.com
Si tu ne veux pas avoir qu'un seul utilisateur, il faudra faire autrement, c'est évident.Il faut voir ça avec l'admin qui t'a ouvert le compte.Envoyé par korntex5
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager