Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

DefaultDir de l'installation

36 réponses
Avatar
Kiriasse
Dans le fichier Setup.lst généré par l'assistant d'installation de VB6 on
lit la ligne :
DefaultDir=$(ProgramFiles)\MonAppli

Quand on installe, le répertoire proposé par défaut est donc :
'C:\Program Files\MonAppli'
ou (par exemple)
'E:\Program Files\MonAppli'

Que doit-on écrire à la place de $(ProgramFiles) pour obtenir comme
répertoire par défaut
'C:\MonAppli'
ou
'E:\MonAppli'
selon que le disque qui héberge Windows est C ou E ?
Merci d'avance.

10 réponses

1 2 3 4
Avatar
Jacques93
aski a écrit :
Fred a écrit le 09/12/2007 :

Voir la procèdure :

ResolveDestDir dans le module basSetup1.bas





Et tu l'as déjà examiné !
Il ne te reste plus qu'à l'adapter ;-)



y-en a qui ont essayé lol rofl lol




Absolument, j'y avais fais des modifications pour créer des raccourcis
sur le bureau et dans Menu Démarrer sous ... Windows 95 ;-)

Mais je persiste dans l'idée que ce n'est pas une bonne solution
d'installer son Application dans la racine du disque.

--
Cordialement,

Jacques.
Avatar
Jean-marc
Jacques93 wrote:
aski a écrit :
Fred a écrit le 09/12/2007 :

Voir la procèdure :

ResolveDestDir dans le module basSetup1.bas





Et tu l'as déjà examiné !
Il ne te reste plus qu'à l'adapter ;-)



y-en a qui ont essayé lol rofl lol




Absolument, j'y avais fais des modifications pour créer des raccourcis
sur le bureau et dans Menu Démarrer sous ... Windows 95 ;-)

Mais je persiste dans l'idée que ce n'est pas une bonne solution
d'installer son Application dans la racine du disque.




Je partage cet avis.

Ceci dit, j'ai fait l'exercice pour le plaisir:

** Modif dans : basCommon (common.bas)

Ajout en haut de module avec les autres déclarations :
Public Const gstrWINDRIVE$ = "$(Root)"

** Modif dans : basSetup1 (setup1.bas)
Dans laFonction : ResolveDestDir, Ajout de :

Case UCase$(gstrWINDRIVE$)
strResolved = strRootDrive()

Puis on recompile L'application Setup1.exe, dans
Microsoft Visual StudioVB98WizardsPDWizard

(NOTE: Sauvegarder le setup1.exe original au cas ou !! )

Et voila.

Le nouveau setup1.exe reconnait la syntaxe:

[Setup]
Title=Project1
DefaultDir=$(root)Project1

Et dans ce cas, il propose
C:Project1 comme répertoire par défaut.

J'ai mis l'exécutable ainsi modifié ici:
http://users.skynet.be/candide/jmn/vb6setupnew/setuproot.html


Note: la seule modif que j'ai faite à cet exe par rapport à
l'original est celle décrite ici.

Je suis sur que ca fonctionne MAIS je pense comme Jacques
que ce n'est *pas* une bonne idée de faire comme ça une
installation sauvage à la racine. Mais ce n'est que mon avis.

Cordialement à tous;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Fred
Dans : news:%,
Jacques93 disait :

Mais je persiste dans l'idée que ce n'est pas une bonne solution
d'installer son Application dans la racine du disque.



D'autant plus que les sécurités NTFS par défaut ne permettent pas
l'écriture à la racine du disque pour les utilisateurs.
Tout dossier créé à cet endroit héritera de ces restrictions.

--
Fred
http://www.cerber mail.com/?3kA6ftaCvT (enlever l'espace)
Avatar
Jean-marc
>Jean-marc wrote:




Arf !!!

Posté trop vite :-(

Tel quel l'exe retourne pour (root) la lettre du
premier lectuer fixe, donc toujours C:

Il ne fait donc pas faire:
Case UCase$(gstrWINDRIVE$)
strResolved = strRootDrive()

mais un truc du genre récupérer le début de Winpath:
gstrWinSysDir

Bref, c'est l'idée :-)

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Jacques93
Bonjour Kiriasse,
Kiriasse a écrit :
Vous vous permettez de me tutoyer mais, comme vous aviez eu la gentillesse
de me répondre avec pertinence à d'autres questions que j'avais posées, je
ne vous en tenais pas rigueur, même si vous avez vraisemblablement l'âge de
mes petits-fils.



Sont prêts de la retraite alors ;-)

Mais voilà que maintenant vous ironisez grossièrement et stupidement.



Peut être suis resté jeune d'esprit ? :-D

Rafale est un logiciel de publipostage que j'ai développé quand Vista
n'existait pas encore et qui peut être utilisé ou bien, par exemple, par le
paisible retraité, président d'une association -- comme c'est mon cas --
pour transmettre des informations aux adhérents de cette association, ou
bien par un spammeur, ce dont je ne saurais être tenu responsable (comme les
concepteurs d'une Mercedes ou d'une Peugeot ne sont pas tenus responsables
des excès de vitesse commis par les conducteurs de leurs automobiles).



Ils sont responsables de la possibilité d'atteindre ces vitesses ...

Un utilisateur ancien et fidèle de ce logiciel Rafale m'a demandé de
l'adapter afin qu'il puisse fonctionner sur son nouvel ordinateur sous
Vista. Je croyais y être parvenu jusqu'au moment où j'ai demandé à cet
utilisateur de tester la désinstallation : le programme de désinstallation
ne trouve pas le fichier Uninstal.log créé par l'application dans son
répertoire parce que ce répertoire est un sous-répertoire de 'Program
Files'.



[HS] : L'utilisateur est il rémunéré pour ces tests ?
Je vous ai indiqué pourquoi le fichier n'apparaissait pas
(Virtualisation des fichiers et du registre sous Vista).

Tout se passe donc comme si, pour des raisons que j'ignore (seriez-vous
actionnaire chez Microsoft ?),



Non, ni d'aucune autre société.

vous désiriez me dissuader de trouver la
solution pour empêcher l'utilisateur d'installer Rafale ou toute autre
application devant être utilisée sous Vista en contournant les emmerderies
créées par la nouvelle gestion invraisemblable sous Vista de 'Program Files'
qui interdit pratiquement toute écriture de données dans un sous-répertoire
de l'application quand cette application est installée dans 'Program Files'.
Mais la plupart des applications existantes écrivent leurs données dans des
sous-répertoires de cette application et Vista rique fort de poser bien des
problèmes aux utilisateurs de tous ces logiciels.



Faux, déjà sous XP l'accès en écriture au répertoire %ProgramFiles% est
limité :

http://cjoint.com/?mjlsMnMmDY

Et pour les données, il suffit de regarder, sous XP, dans :

%userprofile%Application data
%userprofile%Local SettingsApplication Data
%allusersprofile%Application Data

pour s'en convaincre

Tant pis si je ne découvre pas cette solution. Il me suffira de demander à
l'utilisateur d'installer l'application « sur le disque où se trouve Windows
dans le répertoire nommé par exemple 'KiriasseMonAppli' » puis, dans
l'appli elle-même, de vérifier dès son ouverture que le répertoire de
l'application est bien celui-là et de fermer cette appli dans le cas
contraire avec un MsgBox du genre :
MsgBox "Vous n'avez pas installé MonAppli dans le bon répertoire." & vbcrlf
& _
"Veuillez réinstaller MonAppli comme cela vous a été demandé par le
programme d'installation.", 16, "Fin du programme"
J'aurais ainsi épargné à cet utilisateur bien des désagréments et
tracasseries.

Quand je parle d'emmerderie, de désagréments, de tracasseries, est-ce que
j'exagère ?



Non, c'est au moins un point commun ;-)

Ces consignes me paraissent à l'évidence bien dissuasives pour la plupart
des utilisateurs de logiciels qui ont été développés à une époque où Vista
n'existait pas. Sans parler des fichiers HLP qui ne fonctionnent plus sans
une mise à jour à installer depuis le site de Microsoft. Ou encore du
contrôle dhtmled.ocx qui ne fonctionne plus sous Vista sans une mise à jour
à aller chercher au diable sur le même site. Pour n'évoquer que ce que j'ai
pu déjà découvrir avant même d'avoir installé Vista sur mon propre
ordinateur...



Un peu de lecture :

<http://www.microsoft.com/downloads/details.aspx?FamilyIDº73B169-A648-49AF-BC5E-A2EEBB74C16B&displaylang=en>

Voir page 18 : Virtualisation, cela explique, plus en détail que je ne
l'ai fait, le problème que vous rencontrez

--
Cordialement,

Jacques.
Avatar
Jacques93
Bonjour jean-marc,
Jean-marc a écrit :
Jean-marc wrote:




Arf !!!

Posté trop vite :-(

Tel quel l'exe retourne pour (root) la lettre du
premier lectuer fixe, donc toujours C:

Il ne fait donc pas faire:
Case UCase$(gstrWINDRIVE$)
strResolved = strRootDrive()

mais un truc du genre récupérer le début de Winpath:
gstrWinSysDir

Bref, c'est l'idée :-)




Peut être récupérer l'unité de disque dans la clé :

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionProgramFilesDir


--
Cordialement,

Jacques.
Avatar
Jean-marc
Jacques93 wrote:
Bonjour jean-marc,
Jean-marc a écrit :
Jean-marc wrote:




Arf !!!

Posté trop vite :-(

Tel quel l'exe retourne pour (root) la lettre du
premier lectuer fixe, donc toujours C:

Il ne fait donc pas faire:
Case UCase$(gstrWINDRIVE$)
strResolved = strRootDrive()

mais un truc du genre récupérer le début de Winpath:
gstrWinSysDir

Bref, c'est l'idée :-)




Peut être récupérer l'unité de disque dans la clé :

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionProgramFilesDir



Oui ou comme un cochon comme je l'ai fait pour tester:

Case UCase$(gstrWINDRIVE$)
strResolved = Mid$(gstrWinSysDir, 1, InStr(gstrWinSysDir, ""))

Et ça fonctionne :-)

Mais tel quel, ça oblige à pas mal chipoter le setup.lst
à la main. Mais bon, c'est juste pour le fun hein !

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Patrice Henrio
Fred a écrit :
Dans : news:475bb3c8$0$29261$,
Jean-marc disait :
Fred wrote:
Dans : news:475bad1f$0$29264$,





N'y a -t-il pas les sources du setup quelque part ? Je crois me
souvenir que oui.



Je ne sais pas, j'avoue que ça ne me dit rien. C'est très
possible en tout cas, mais j'ignore ou on peut trouver
ça.



De mémoire : dans le répertoire d'installation de VB, un setup.bas
peut-être (?)
C'est juste pour l'amusement de créer une macro supplémentaire ;-)



Non c'est le fichier setup.lst qui donne l'ensemble des actions faites
par le setup.exe. En fait, d'après ce que j'ai compris, le setup.exe lis
le setup.lst pour savoir ce qu'il doit faire, comme inno-setup
d'ailleurs qui peut récupérer setup.lst pour créer un fichier
d'installation.
Avatar
Patrice Henrio
Patrice Henrio a écrit :
Fred a écrit :
Dans : news:475bb3c8$0$29261$,
Jean-marc disait :
Fred wrote:
Dans : news:475bad1f$0$29264$,





N'y a -t-il pas les sources du setup quelque part ? Je crois me
souvenir que oui.



Je ne sais pas, j'avoue que ça ne me dit rien. C'est très
possible en tout cas, mais j'ignore ou on peut trouver
ça.



De mémoire : dans le répertoire d'installation de VB, un setup.bas
peut-être (?)
C'est juste pour l'amusement de créer une macro supplémentaire ;-)



Non c'est le fichier setup.lst qui donne l'ensemble des actions faites
par le setup.exe. En fait, d'après ce que j'ai compris, le setup.exe lis
le setup.lst pour savoir ce qu'il doit faire, comme inno-setup
d'ailleurs qui peut récupérer setup.lst pour créer un fichier
d'installation.




Répondu trop vite bien sûr. j'aurai du lire la suite avant.

Bon courage à tous.
Avatar
Kiriasse
J'ai effectivement réussi (ce n'est pas bien compliqué) à modifier (en
intervenant évidemment dans le code source Setup1.vbp qui est donné avec
VB6) le Setup1.exe du programme d'installation généré par l'assistant de
VB6. J'ai créé une nouvelle macro-commande que j'ai appelée $(DiskWin).
Elle complète la collection disponible : ($(AppPath), $(ProgramFiles),
$(CommonFiles), $(CommonFilesSys), $(WinPath), $(WinSysPath), $(Font)...
Et j'ai trouvé en fouinant dans Google que l'on peut imposer le répertoire
où se fait l'installation en ajoutant dans Setup.lst la ligne
'ForceUseDefDir = 1 '.
Par exemple, pour que l'installation de MonAppli ait lieu (sans que
l'utilisateur puisse le changer) dans le sous-répertoire 'MesLogiciels' du
disque dur sur lequel se trouve Windows (actif), il faut écrire dans
Setup.lst les deux lignes :
DefaultDir="$(DiskWin)MesLogicielsMonAppli"
ForceUseDefDir = 1
Et ça marche.
1 2 3 4