guguk
Messages postés23Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention20 avril 2006
-
3 janv. 2006 à 15:28
guguk
Messages postés23Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention20 avril 2006
-
4 janv. 2006 à 23:17
bonjour à tous
j'ai réalisé une application de consultation de fichiers divers
(images, pdf, sons) stockés sur un DVD. je souhaite en faire un DVD
multimedia à distribuer avec une interface de consultation réalisée en
VB qui s'affiche après introduction du disque dans le lecteur.
problème :
si certains fichiers ne sont pas déjà installés (comme VB6FR.DLL et
autres OCX) sur l'ordinateur, ça plante. l'idéal serait que ces
fichiers système soient copiés du dvd vers le disque dur avant même
d'avoir recours au instruction VB, puisque si VB6FR.DLL n'est pas sur
la machine, forcément les instruction VB ne sont pas comprises et ça
plante.
Est-ce possible de le faire au niveau du fichiers autorun qui lance le dvd sans faire appelle au VB, si oui comment?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 3 janv. 2006 à 17:03
disons dans un fichier "autorun.bat"
@ECHO OFF
ECHO Copie et enregistrement des dépendances
REM on copie la dll qui se trouve dans le même répertoire que le Bat, vers System32
COPY UneDLL.dll %SYSTEMROOT%\system32\UneDLL.dll
REM on l'enregistre sans message
regsvr32 -s %SYSTEMROOT%\system32\UneDLL.dll
PAUSE
REM on lance l'exe
project1.exe
EXIT
tu peux très bien faire 2 exe, le 1er lancé par le .bat, lançant le 2e
puis se fermant (pour fermer la console). à sa fermeture, la ligne EXIT sera lue....
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 3 janv. 2006 à 19:24
Un petit prog d'installe (Genre InnoSetup) serait peut être un peu plus pro, non ?
J'ai pas mal réfléchit au problème de l'installation par .bat, et j'en ai conclus que c'était très difficile de faire un truc à peu près propre.
Par exemple, (Désolé PCPT) :
COPY UneDLL.dll %SYSTEMROOT%\system32\UneDLL.dll
Si une dll du même nom est déjà présente la copie n'aurat pas lieu (Y a pas le flag pour ça).
Cela peut causer des problèmes de version, que tu mettes le flag ou pas.
Quand à la désinstallation, soit on en fait pas, soit on sait jamais si on peut enlever la dll.
Sinon, je n'ai jamais essayer, mais tu devrais pouvoir executer un .exe sur ton dvd.
Il faut simplement que tu mettes VB6FR.DLL dans le même dossier que ton exe sur ton DVD, et que tu n'utilise aucuns contrôle ActiveX particulier dans l'appli (Ca devrait suffire sur tous les XP, 2000, voire plus).
Cela te donnerai les moyens de gérer plus finement ton installation, à la shell "regsvr32 ..."
Mais là encore, pour être rigoureux en ce qui concerne les versions, il faudrait pas mal de code, basé sur la base de registre (Ou sur la version du fichier).
Donc franchement je te conseille d'utiliser des outils qui ont fait leurs preuves.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 3 janv. 2006 à 19:55
rt15 -> soit pas désolé, je partage ton avis.
cf ma première ligne : oui c'est possible, mais pas très propre ni très pro à mon goût....
le problème de mettre les dll runtime à la racine de l'exe, c'est qu'elles ne seront pas enregistrées pour autant.
l'exe est traité par la VM (donc qui doit être regsvr...ée), et
les autres dll/ocx peuvent être dans le dossier de l'exe, enregistrés
comme rt15 le conseille, par un module Main (donc avant l'appel réel
des autres éventuelles dépendances)
donc la solution du .bat est possible, mais c'est pas pro...
le mieux serait de faire même un installeur silencieux en C qui
lancerait ensuite l'exe (dont toutes dépendances auraient été
enregistrés par l'installeur C)
ou pas d'exe, que du flash ou shockwave, mais je doute que çà doit la finalité^^