Nous sommes le Mer 24 Avr, 2024 15:54
Supprimer les cookies

Page 1 sur 21, 2 SuivantFBReader portable, première tentative de portabilisation.

Image Image Forum dédié à notre projet de clé USB nomade libre sous Windows

Mar 29 Nov, 2011 16:08

Bonjour,

Je viens de tenter la portabilisation de FBReader en suivant le tuto sur Framakey et tout fonctionne correctement.

Toutes les options et modifications sont bien retenues au sein du dossier de l'appli. Cependant, un fichu dossier ".FBReader" se crée toujours dans .../Documents and Settings/Monutilisateur/ a chaque lancement de l'application portabilisée. Ce dossier contient trois fichiers de base de données books.db, network.db et state.db qui retiennent le dernier livre ouvert, etc...

J'ai pourtant décommenté la ligne !define APPDATABACKUP. Faut-il y indiquer le chemin de création du dossier?

Merci!
Anghirrim

Messages : 67

Mar 29 Nov, 2011 19:24

Bonjour,

Quelle version du pack de portabilisation ?
Ou plus exactement : quel version du script NSIS ou AHK de base ?

Sinon la réponse à la question posée est oui :D
Mais j'ai besoin de la réponse à ma question pour être plus précis ;)
Vécu : "J'ai une version crackée d'OpenOffice, c'est pour ça qu'elle est en anglais"
fat115

Avatar de l’utilisateur
Messages : 930
Géo : Ardèche ... du nord

Mar 29 Nov, 2011 19:57

Eh bien la version dispo actuellement sur l'espace Framakey (9.7). Je l'ai prise cet après-midi.

Sinon un truc me chiffonne, le logiciel s'annonce bien sous license GPL, mais sur le site il est indiqué qu'une partie des sources est sous Copyright. C'est possible?

Roooohhh!!!! Le détail qui tue, l'essai de version portable de FBReader que j'ai fait cet après-midi et que j'ai mis dans le dossier App de ma Framakey apparait dans SynApps maintenant!!! :D

Bon sinon c'est pas bon... en le lançant sur mon ordi perso, le paramétrage de l'appli retourne aux paramètres par défaut. Il met donc bien ses paramètres dans le registre...
Anghirrim

Messages : 67

Mer 30 Nov, 2011 00:00

Avec un petit test avec le script en AHK (vers 10.0.0.3), le soucis, c'est que les paramètres à sauvegarder sont dans "C:\Documents and Settings\Administrateur\.FBReader" et non dans "C:\Documents and Settings\Administrateur\Application Data\.FBReader"
Du coup, j'ai fait une petite modification dans le script AHK au niveau des lignes 131 à 141
Code: Tout sélectionner
If _APPDATABACKUP
   {
   If _APPDATASUBDIR
      p_DataDirUnified := A_AppData . "\" . Dereference(_APPDATASUBDIR)
   Else
      p_DataDirUnified := A_AppData . "\" . "." . _APPNAME
   StringReplace, p_DataDirUnified, p_DataDirUnified, Application Data\, , All         

   }

fat 115, est-ce que cela te semble correct ?
Il y a sûrement une technique plus élégante que celle-ci.

Il me reste tout de même un soucis car au final, dans l'application portable, la première sauvegarde des paramètres s'effectue bien dans
"Data\settings\.FBReader" mais la suivante se fait dans "Data\settings\.FBReader\.FBReader", la troisième dans "Data\settings\.FBReader\.FBReader\.FBReader"...

Cela est sûrement dû à ma modification faite à l'arrache avec mes faibles connaissances en ahk.
cyrille

Avatar de l’utilisateur
Messages : 953
Géo : Seine et Marne

Mer 30 Nov, 2011 07:14

cyrille a écrit:Du coup, j'ai fait une petite modification dans le script AHK au niveau des lignes 131 à 141
...
fat 115, est-ce que cela te semble correct ?
Il y a sûrement une technique plus élégante que celle-ci.

Déjà il faut vérifier l'emplacement utilisé dans Vista ou 7 qui ont une structure de dossiers légèrement différente.
D'autant plus que j'ai l'impression que le dossier utilisé est relatif à "Mes Documents", ce qui est étrange.
Ensuite le StringReplace c'est pas forcément une bonne idée, mieux vaut chercher le parent du dossier (SplitPath).

Je complèterai ma réponse plus tard, je suis à la bourre.
Vécu : "J'ai une version crackée d'OpenOffice, c'est pour ça qu'elle est en anglais"
fat115

Avatar de l’utilisateur
Messages : 930
Géo : Ardèche ... du nord

Mer 30 Nov, 2011 09:15

Bon bah je crois que je vais lire et apprendre...ça m'a l'air un poil plus compliqué que ce à quoi je m'attendais.

Y'a moyen de commenter le code pour que je comprenne les mécanismes mis en place? Comme ça je pourrai tenter de bidouiller mon fichier.

Merci :mrgreen:
Anghirrim

Messages : 67

Mer 30 Nov, 2011 15:41

Alors une réponse un poil plus complète avec le pack 9.7 :
Dans le fichier FBReaderPortable\Other\Source\FBReaderPortable.nsi
Code: Tout sélectionner
ligne 56 : define à décommenter
!define APPDATABACKUP

Code: Tout sélectionner
ligne 68 : chemin de la base de registre à indiquer
ligne 69 : define à décommenter pour activer la sauvegarde des clés de registre
!define REGPATH `HKEY_CURRENT_USER\Software\FBReader`
!define REGBACKUP

Code: Tout sélectionner
ligne 211 : remplacer APPDATA par PROFILE et changer le nom du dossier utilisé par l'appli
StrCpy $DataDirUnified "$PROFILE\.${APPNAME}"

Pour ce point là c'est à vérifier sur un Windows 7 comme dit plus haut.
J'ai jeté un coup d'oeil très rapide aux sources du logiciel ce matin et il m'a semblé que le chemin du profil était retrouvé en fonction de celui de "Mes Documents", ce qui en passant est un aberration.
C'est dommage, si la technique de récup du dossier avait utilisé une variable d'environnement on aurait pu simplifier le lanceur.

Cela dit, je n'ai même pas installé le logiciel en question, il se peut qu'il existe des options permettant de spécifier le dossier en question via la ligne de commande.
Autre problème avec le lanceur de la 9.7 : l'option de la BDR (REGBACKUP) a quelques bugs sous 7. C'est une des raisons qui m'ont poussé à développer la v10 du pack et les lanceurs en AutoHotkey.

Clairement, on n'est pas sur un lanceur "basique"

Y'a moyen de commenter le code pour que je comprenne les mécanismes mis en place? Comme ça je pourrai tenter de bidouiller mon fichier.
Il est déjà commenté. Plus, ça serait de la transcription :ugeek:

Honnêtement, je partirai plutôt avec le pack v10 bêta3 pour être sûr d'éviter l'erreur avec la base de registre. Et puis comme ça, tu deviendras un cobaye de plus pour le lanceur AutoHotkey.
Points importants à noter :
Avec la v10 il y a un fichier complet qui décrit (presque) tout ce que fait le lanceur en détail.
La syntaxe Autohotkey est beaucoup plus simple à appréhender que celle de NSIS. Je n'irai quand même pas jusqu'à dire qu'elle est triviale :roll:
Vécu : "J'ai une version crackée d'OpenOffice, c'est pour ça qu'elle est en anglais"
fat115

Avatar de l’utilisateur
Messages : 930
Géo : Ardèche ... du nord

Mer 30 Nov, 2011 15:59

Extra pour les infos!!! Merci c'est carrément plus clair maintenant. Je vais donc tenter avec le pack V10b3.

Pour la demande de commentaires, c'était pour le code dans le post de Cyrille. Sinon effectivement c'est très appréciable la manière dont a été écrit le template de base du NSI.

Je vous tiens au jus.

Question optionnelle: les modifs du fichier NSI sont censées laisser le logiciel écrire ses données au lancement puis les sauvegarder à la fermeture tout en les supprimant du PC, puis à les réinjecter lors du lancement suivant?
Anghirrim

Messages : 67

Mer 30 Nov, 2011 16:57

J'ai jeté un coup d'oeil très rapide aux sources du logiciel ce matin et il m'a semblé que le chemin du profil était retrouvé en fonction de celui de "Mes Documents", ce qui en passant est un aberration.

Je confirme, je viens d'essayer avec un profil type 'réseau' avec redirection de "Mes Documents" vers un lecteur réseau (P:) et le dossier .FBReader n'est plus créé dans le profil utilisateur mais sur le lecteur réseau (le dossier parent d'un lecteur c'est lui-même).

Moralité, il faut définir le dossier dans le lanceur de la même façon.
Quand je disais qu'on était loin d'un lanceur 'basique'
Vécu : "J'ai une version crackée d'OpenOffice, c'est pour ça qu'elle est en anglais"
fat115

Avatar de l’utilisateur
Messages : 930
Géo : Ardèche ... du nord

Mer 30 Nov, 2011 17:03

Bon j'ai tenté avec la V10b3 du pack de portabilisation.

J'ai fait la modif suivante dans le fichier AHK:
Code: Tout sélectionner
; --- Options : décommentez pour application, cf LogigrammeLanceur.odg pour plus d'infos ---
;_HISTORY := True
_APPDATABACKUP := True
_APPDATASUBDIR := "$PROFILE\.FBReader"
;_MOZLOOP := True
;_READONLYL := true
;_NETWORKL := True
_REGBACKUP := True
_REGPATH := "HKEY_CURRENT_USER\Software\FBReader"


Est-ce au bon endroit? J'ai aussi aperçu d'autres trucs vraisemblablement à modifier aussi plus bas. Bon en revanche, en lisant ton commentaire posté entre temps, j'en déduis que le "$PROFILE n'est plus la meilleure option?
Anghirrim

Messages : 67

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit