Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
731 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Intercepter une URL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Intercepter une URL

n°1082145
warzouz
alias NazgûL
Posté le 13-05-2005 à 13:13:51  profilanswer
 

Bonjour,
 
J'essaye de faire un programme, j'ai déjà le gros des éléments, mais je bloque sur un point.
 
Voici ce que je veux faire.
 
Dans un navigateur, l'utilisateur clique sur une URL avec un protocole spécial (ex : monprot://www.monsite.com/fichier.zip|AutresParam )
 
Je voudrait lancer une appli quil vas s'occuper du téléchargement du fichier et effectuer des opérations d'installation.
 
Point 1 : Intercepter l'URL
Ca, j'ai trouvé dans la base de registre où associer le protocole et la commande shell à lancer
 
Point 2 : Passer l'URL à l'application active et non une nouvelle instance.
Si dans la commande j'ai "monprog.exe" "%1", ça va lancer une nouvelle instance de mon prog.
 
La question est : Comment faire pour que ça soit l'instance active qui traite l'opération (en fait récupérer l'URL et après elle se débrouille) et non une nouvelle instance.
 
 
Ca doit être assez simple puisque pleins de programmes le font, 'mais j'arrive par à trouver de code en VB.Net, ni en VB d'ailleurs.
 
PS : mon prog détecte déjà qu'il y a une autre instance qui tourne et refuse alors de se lancer.
 
Merci d'avance pour votre aide.


---------------
Le but de l'homme moderne sur cette terre est à l'évidence de s'agiter sans réfléchir dans tous les sens, afin de pouvoir dire fièrement, à l'heure de sa mort : "Je n'ai pas perdu mon temps." - Pierre Desproges
mood
Publicité
Posté le 13-05-2005 à 13:13:51  profilanswer
 

n°1082603
warzouz
alias NazgûL
Posté le 13-05-2005 à 17:35:42  profilanswer
 

:bounce:  
 
Personne ne sait ouvrir faire ouvrir un fichier à une application déjà lancée simplement double cliquant sur le fichier en question ?


---------------
Le but de l'homme moderne sur cette terre est à l'évidence de s'agiter sans réfléchir dans tous les sens, afin de pouvoir dire fièrement, à l'heure de sa mort : "Je n'ai pas perdu mon temps." - Pierre Desproges
n°1088447
warzouz
alias NazgûL
Posté le 18-05-2005 à 20:41:21  profilanswer
 

Apparamment avant ça se faisait avec DDE.  
 
Mais DDE n'est pas intégré dans .Net et MS recommande de ne plus l'utiliser.
 
Comment faire alors pour ouvrir un fichier (depuis l'explorateur) dans un programme déjà lancé ?
 
 :sweat:


---------------
Le but de l'homme moderne sur cette terre est à l'évidence de s'agiter sans réfléchir dans tous les sens, afin de pouvoir dire fièrement, à l'heure de sa mort : "Je n'ai pas perdu mon temps." - Pierre Desproges
n°1088660
HelloWorld
Salut tout le monde!
Posté le 18-05-2005 à 23:48:33  profilanswer
 

warzouz a écrit :

Point 2 : Passer l'URL à l'application active et non une nouvelle instance.
Si dans la commande j'ai "monprog.exe" "%1", ça va lancer une nouvelle instance de mon prog.


Faut faire de l'IPC. Bcp de possibilités :
- sockets
- messages windows (WM_COPYDATA...)
- pipe nomé
- file mapping
...
http://msdn.microsoft.com/library/ [...] ations.asp
Je te déconseille DDE, ça commence à dater.
http://www.codeproject.com/aspnet/AspxProtocol.asp


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°1088784
warzouz
alias NazgûL
Posté le 19-05-2005 à 09:46:27  profilanswer
 

Merci pour ta réponse, DDE commence à dater, mais le shell intègre en standard cette technique pour lancer les applications.
 
La solution que j'ai trouvé pour l'instant, c'est de lancer un STUB (programme interface) qui récupère le paramètre et le passe au programme (actif) qui va réellement gerer ce paramètre. Puis le Stub se coupe.
 
C'est ça le principe de ce que tu conseilles ?
 
Pour info IE fait du DDE, FireFox fait du DDE, Word fait du DDE, XmlSpy fait du DDE
 

HelloWorld a écrit :

Faut faire de l'IPC. Bcp de possibilités :
- sockets
- messages windows (WM_COPYDATA...)
- pipe nomé
- file mapping
...
http://msdn.microsoft.com/library/ [...] ations.asp
Je te déconseille DDE, ça commence à dater.
http://www.codeproject.com/aspnet/AspxProtocol.asp



---------------
Le but de l'homme moderne sur cette terre est à l'évidence de s'agiter sans réfléchir dans tous les sens, afin de pouvoir dire fièrement, à l'heure de sa mort : "Je n'ai pas perdu mon temps." - Pierre Desproges
n°1088915
HelloWorld
Salut tout le monde!
Posté le 19-05-2005 à 11:20:36  profilanswer
 

A mon avis tu cherches la complication. Stub, DDE, ... si j'ai bien compris ton problème, c'est tout con, c'est comme quand [winamp|mdedia player|...] tourne déjà et qu'une 2° instance est lancée suite à un clique sur un mp3 , cette 2° instance s'en rend compte qu'elle est la 2°, signale à la 1° de jouer un autre mp3 et se termine.
DDE c'est surdimensionné pour ce besoin. Un simple message fait l'affaire.
http://www.vbaccelerator.com/home/ [...] rticle.asp
DDE n'est qu'une version plus élaborée de ce principe.
Mais bon si tu veux faire du DDE, fais du DDE.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Intercepter une URL

 

Sujets relatifs
logo par défaut à gauche des URLAncre interne dans une URL
Accès à une URL depuis une applet[URL REWRITING] && [NAVIGATION]
Regex URLEnvoi de donnees par URL
lecture/écriture binaire (depuis URL) [Résolu]Url Rewriting : boucle ?
masquer l' URL dans la barre d'adressePropagation d'un tableau dans une URL
Plus de sujets relatifs à : Intercepter une URL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR