URGENTISIME...

Résolu
guguk Messages postés 23 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 20 avril 2006 - 3 janv. 2006 à 15:28
guguk Messages postés 23 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 20 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?



merci

9 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 janv. 2006 à 22:08
open=projet.exe (rouge à supprimer)

pour fermer avant, c'est ce que je disais. fait 2 projets. le 1er lance le 2ème puis se ferme.

comme le 1er se ferme, la console aussi.

pour la rendre invisible, s'il y a des options, je ne les connais pas.



le langage est le MODE CONSOLE MS-DOS



VB6FR.dll ne sera pas la seule dll à copier.

à la limite, dans un aspect un peu plus propre, le mieux serait de
fournir le vrai runtime (gratuit) complet, à graver, dézippé, et lancé
par le .bat



tu peux le trouver sur telecharger.com (tape runtime vb6, ou vbrun).

là au moins tu ne risques pas d'endommager la config client....



@+

PCPT [AFCK]
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
3 janv. 2006 à 16:07
salut,

oui c'est possible, mais pas très propre ni très pro à mon goût....

le .bat est considéré comme un .exe



ton .inf peut donc lancer un .bat qui copiera toutes les dépendances et
lancera ton .exe en fin de copie ET d'enregistrement (regsvr)

PCPT [AFCK]
0
guguk Messages postés 23 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 20 avril 2006
3 janv. 2006 à 16:31
merci d'une si prompte réponse, mais pourrais-tu me donner plus de
précisions ou un exemple même simple sur ce que contiendrait le .bat?

merci
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
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.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
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é^^
0
guguk Messages postés 23 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 20 avril 2006
3 janv. 2006 à 20:35
merci les gars

j'essai tout çà dès demain et vous tiendrai au courant.

a+
0
guguk Messages postés 23 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 20 avril 2006
4 janv. 2006 à 21:42
bonsoir




je planche depuis ce matin sur le problème.


la soluce de pcpt me convient à priori puisque je veux éviter la procédure d'installation.


MAIS, il reste des petits plus à faire pour améliorer si c'est possible:

1- Est-il possible de masquer la console pour que la fenêtre a fond noir n'apparaisse pas?

2- cette fenêtre ne se referme qu'après fermeture du projet, est-il possible de la fermer avant?



si je fais :

@ECHO OFF

COPY VB6FR.dll %SYSTEMROOT%\system32\VB6FR.dll

EXIT



@ECHO OFF

projet.exe

EXIT



seule la copie de fichier se fait et le projet ne se lance pas.



mon code actuel :




autorun.inf

[autorun]

open=Lancer.bat
icon=projet.ico



Lancer.bat

@ECHO OFF

COPY VB6FR.dll %SYSTEMROOT%\system32\VB6FR.dll


open=projet.exe

EXIT




PS : de quel langage s'agit-il dans la console? où trouver de la doc?



MERCI VACHEMENT BEAUCOUP TOUT PLEIN
0
guguk Messages postés 23 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 20 avril 2006
4 janv. 2006 à 23:17
effectivement open= provient d'un copier-coller quand je l'avait placé dans autorun.inf.

merci pour tout.
0
Rejoignez-nous