JeuxOnLineForumsPlusConnectés : 695 (sites) | 1124 (forums)Créer un compte
Forums divers
La Taverne
Les forums JOL > Forums divers > La Taverne > [Programmation] Base de registre. RSS
   
Répondre
Partager Outils Rechercher
Avatar de Deirdre
Deirdre
Alpha & Oméga
 
Avatar de Deirdre
 

[Programmation] Base de registre.

Salut.
J'expose mon problème:
Je fais une application sous MS ACCESS, et j'ai besoin de créer un bouton de commande qui va lancer une application.
Cela dit, cette application peut avoir des chemins d'accès différents selon les ordinateurs.
Je sais de source sûre qu'ACCESS "retrouve tout seul" le chemin d'accès de l'application puisque quelle que soit la machine, quand on double clique sur l'objet OLE correspondant à ladite application, celle-ci se lance toute seule comme une grande.

J'ai donc besoin d'aide pour associer l'application à un bouton de commande et que ça marche même si le chemin d'accès varie selon les ordis.

Merci d'avance.
Lien direct vers le message - Vieux
Avatar de Thorkas
Thorkas
Alpha & Oméga
 
Avatar de Thorkas
 
(C'est beau Windows tout de même.)

Quelle application ?
Il n'y a aucun moyen standard de retrouver le chemin d'une application, donc si tu ne précise pas de quelle application tu parles, on ne pourra pas t'aider.

Edit : À la vue de la réponse de Kathandro, je me demande si j'ai bien compris le problème. "Cette application", c'est bien une application étrangère qui n'est pas de toi ?
Lien direct vers le message - Vieux
Avatar de Kathandro
Kathandro
Bagnard
 
Avatar de Kathandro
 
Tu imposes aux utilisateurs de mettre leur appli dans un certain répertoire par exemple C:\Appli ACCESS faite par Deirdre\ (ceci n'est qu'un exemple).

Ou alors, tu mets les ordis en réseaux, et tu balances tout sur le réseau (mais pb de vitesse quand la connexion est défaillante )
Lien direct vers le message - Vieux
Lwevin Myan
Alpha & Oméga
 
En gros, tu veux savoir où est stocké dans Windows le programme associé à une extension ?
De par mon expérience :

HKCR\{extension}\{Défaut} te donne un nom plus ou moins interne (je n'ai aucune idée comment le modifier)

HKCR\{Nom}\Shell\Ouvrir\command\{Défaut} te donne la commande associée.
Donc, normalement $0 de cette chaîne te donnera le chemin complet de l'application.

[Edit : Après, pour aller voir la base de registre en VBA, je ne connais pas assez ce langage pour savoir comment on fait. Mais vu le titre que tu as marqué, je ne doute pas que tu saches, toi ]
Lien direct vers le message - Vieux
Avatar de Deirdre
Deirdre
Alpha & Oméga
 
Avatar de Deirdre
 
Voici qques précisions.

L'application en question s'appelle Isis Draw, c'est un logiciel gratuit qui permet de "dessiner" des composés chimiques.
Ces composés peuvent être importés dans une base MS ACCESS en tant qu'objet OLE.

Lorsqu'on importe une molécule, et qu'on double clique dessus dans un formulaire, le logiciel Isis Draw se lance tout seul, et édite la molécule.

Le problème est que sur un enregistrement nouveau, ACCESS sait juste qu'il y a dans ce champs un objet OLE.
Je voulais faire un bouton de commande qui permette de lancer le fameux Isis Draw.
C'est très facile à faire, cependant, le chemin d'accès à l'exécutable est mis en dur dans le code VB du bouton de commande.
Ainsi, si on copie la base de données sur un ordinateur où le chemin vers Isis Draw n'est pas le même, le bouton ne sert plus à rien et on est coincé.
Alors que le double clic sur l'objet OLE de type "Isis/Draw Sketch" provoque toujours le lancement d'Isis Draw quelque soit le pc et le chemin d'accès à l'exécutable d'Isis Draw.

Voila.
Merci en tous cas de votre aide
Lien direct vers le message - Vieux
Avatar de Hanny Drocéphale
Hanny Drocéphale [FED]
 
Avatar de Hanny Drocéphale
 
Solution de contournement is your friend.

Chercher Isis Draw sur le disque dur au lancement de l'appli serais pas mal.
Lien direct vers le message - Vieux
Avatar de Deirdre
Deirdre
Alpha & Oméga
 
Avatar de Deirdre
 
J'hésite sinon à marquer dans le rapport de stage qu'il faut lancer Isis Draw avant d'utiliser la BD
Lien direct vers le message - Vieux
Avatar de Hanny Drocéphale
Hanny Drocéphale [FED]
 
Avatar de Hanny Drocéphale
 
Bon, j'essaye d'installer ton isis draw et je regarde comment on bidouille tout ça en VBA, bouge po.
[edit]Roooh Stargate ouais. pis manger aussi.[/edit]
Lien direct vers le message - Vieux
Avatar de Deirdre
Deirdre
Alpha & Oméga
 
Avatar de Deirdre
 
ok, je bouge pas, ou alors je vais voir Thalassa ou SG-1 en attendant, merci d'avance
Lien direct vers le message - Vieux
Avatar de vabroi
vabroi
Alpha & Oméga
 
Avatar de vabroi
 
En regle général, lorsque l'on désire ce genre de chose, on associe un fichier (plus ou moins facile d'acces au fouineur : nom, extension, cryptage etc ... mais tout ca c'est le marteau piqueur pour casser une noisette), dans lequel on mémorise le chemin d'accès de l'appli et des différents fichiers utiles.

Ton bouton n'a plus qu'à lire ce fichier pour savoir où il doit aller.


La deuxieme solution est la lecture de la base de registre.

Dors et déjà le chemin de cette clef est HKEY_LOCAL_MACHINE\SOFTWARE\
puis le nom de l'appli, pour finir généralement par une clef en InstallFile, ou PathToExe de valeur : le chemin de l'appli sur le dur.

Quant à savoir comment le lire : en C++ sous Borland, on fait habituellement une recherche par RegOpenKeyEx, qui ouvre une section du registre. RegQueryValueEx, qui lit le contenu d'une variable de cette section, puis RegCloseKey, qui ferme et update la section.

Pour chercher cette variable il y a (de mémoire, mais jamais utilisé) un RegSearchKeyEx.

La troisieme et moins bourrine :
creer ta propre clef a l'install sur le nouveau PC.
Là tu recherche sur le disque dur le nom de l'exe (une recherche arborescente est simple a faire faire, mais tu peux laisser le choix a l'utilisateur (style recherche manuelle ou auto)).
tu la mémorise dans la clef
a chaque plantage d'ouverture de l'exe, le bouton demande si l'utilisateur veut qu'il cherche lui meme l'exe, ou s'il sait où il se situe. Si l'user est une feignasse, le soft reparcours le HDD a sa recherche.
La fin est un update du registre avec la nouvelle adresse.


Voila voila.

Je ne sais pas si cela va t'avancer a grand chose mais bon.
Lien direct vers le message - Vieux
Avatar de Prune
Prune
Reine
 
Avatar de Prune
 
Pourquoi pas tout simplement demander a l'installation de spécifier ou est installer isis machin et de stocker cette info dans un fichier texte... ?
Lien direct vers le message - Vieux
Avatar de Kathandro
Kathandro
Bagnard
 
Avatar de Kathandro
 
Bon, tu fais un second bouton pour demander le chemin d'accès à Isis Draw.
Ton second bouton, il va lancer une InputBox où tu demandera le répertoire et ensuite une seconde InputBox pour le nom de l'exécutable...
Bon, après c'est simple, je te laisse faire (c'est comme ça que j'ai fait en stage )
Lien direct vers le message - Vieux
Avatar de Deirdre
Deirdre
Alpha & Oméga
 
Avatar de Deirdre
 
J'avais en effet provoqué l'affichage d'un champ pour demander le chemin d'accès dans le cas où le chemin initial n'était pas le bon, mais ça obligeait l'utilisateur à connaitre le chemin d'accès.
J'explorerai dès lundi la piste du fichier txt qui contient le chemin.

Merci à tous pour votre aide
Lien direct vers le message - Vieux
Avatar de Deirdre
Deirdre
Alpha & Oméga
 
Avatar de Deirdre
 
Quelqu'un saurait si on peut (et si oui comment) faire apparaitre un explorateur windows (comme celui qui apparait quand on veut ouvrir ou enregistrer un fichier) qui permettrait de trouver le chemin du logiciel?

Merci.
Lien direct vers le message - Vieux
Avatar de Grim
Grim
Alpha & Oméga
 
Avatar de Grim
 
Je vais peut être dire une connerie mais bon...

J'imagines que ton fichier Isis Draw a une extension particulière qui fait que Isis Draw est le programme par défaut qui va l'ouvrir.

Si oui, je vois pas où est le problème, ton formulaire contient un champ objet OLE, tu double clique dessus pour ouvrir dans le bon programme, sans avoir besoin d'une recherche, c'est win qui s'en occupe... Ca fonctionne nickel avec des fichiers images (je viens de faire le test, il s'ouvre dans acdsee, ok, pas eu besoin de préciser quoi que ce soit )
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forums divers > La Taverne > [Programmation] Base de registre.
   

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés

Outils Rechercher
Rechercher:

Recherche avancée

Thème visuel : Fuseau horaire GMT +1. Il est actuellement 16h59.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite