Page 41 sur 55
Re: EPB
Publié : mer. 29/août/2012 10:20
par Ar-S
Si tu fais chemin_defaut_compiler_32$ = #PB_Compiler_Home à la compilation d'EPB, c'est ton path qui sera renvoyé..
Il est censé faire ça quand le #PB_Compiler_Home ? Chez toi ou chez nous ? Car lorsque je lance la commande dans un editeur, c'est bien mon path qui est renvoyé.
Re: EPB
Publié : mer. 29/août/2012 10:49
par Backup
Ar-S a écrit :Si tu fais chemin_defaut_compiler_32$ = #PB_Compiler_Home à la compilation d'EPB, c'est ton path qui sera renvoyé..
Il est censé faire ça quand le #PB_Compiler_Home ? Chez toi ou chez nous ? Car lorsque je lance la commande dans un editeur, c'est bien mon path qui est renvoyé.
ben il est sensé faire ça chez vous bien sur ...
Ar-S a écrit :Si tu fais chemin_defaut_compiler_32$ = #PB_Compiler_Home à la compilation d'EPB, c'est ton path qui sera renvoyé..
ha... mais alors , je fais comment moi pour connaitre Votre chemin de compilateur ?
je pensai que
dans un code, mettait
au moment de son execution
le chemin dans la variable ....
pas que ça ce faisait seulement au moment de la compilation du code ... évidement ... dans ce cas
elle ne sert a rien cette constante alors ... je pensai qu'elle etait branché sur les variables systeme
Re: EPB
Publié : mer. 29/août/2012 11:00
par Ar-S
Dobro a écrit :
Ar-S a écrit :Si tu fais chemin_defaut_compiler_32$ = #PB_Compiler_Home à la compilation d'EPB, c'est ton path qui sera renvoyé..
ha... mais alors , je fais comment moi pour connaitre Votre chemin de compilateur ?
C'est une supposition de ma part.
---edit----
tu t'embêtes, surtout si l'utilisateur à différentes version de PB... Tu ferais mieux de faire un simple test du string. si string = "c:\" (que tu mets par defaut), alors tu ouvres un pathrequester qui demande ou se trouve le repertoire PB
Tu peux même enquiller sur une demande d'ajout du compilateur x64 ou pas. Si oui, même procédé.
Re: EPB
Publié : mer. 29/août/2012 11:10
par Backup
je veux quans meme essayer de mettre un chemin par defaut , car les 3/4 des gens, vont essayer de compiler
un truc avant meme d'aller dans la fenetre des Options
j'avais posté , il y a longtemps un code sur la lecture du Path de Purebasic ( la derniere installé ) en lisant le registre
faut que je remette la main dessus

je mettrai ce Path par Defaut, ça fera un point de depart

Merci pour ces infos... je vais donc fouiller dans mes codes

Re: EPB
Publié : mer. 29/août/2012 11:12
par falsam
J'ai supprimé et vérifié qu'aucune installations d'EPB se trouve sur mon PC.
1-Je télécharge ta derniere version et je décompresse.
2-Dans le dossier je n'ai pas de fichier preférence.
3-Je clique sur Projet - > Options du projet
4-Puis onglet chemin : j'ai D:\Dobro\Purebasic_4_61\86\Compilers\pbcompiler.exe
Le fichier epb.prefs est crée
Extrait
Code : Tout sélectionner
;
; ********** chemin des fichiers *********
;
[files]
indice = 0
fichier_chemin_0 = c:\
chemin_defaut = c:\
chemin_compilateur 32 bits = D:\Dobro\Purebasic_4_61\86\Compilers\pbcompiler.exe
activ_32_bits = 1
chemin_compilateur 64 bits = c:\
activ_64_bits = 0
chemin_son_apres_compilation = c:\
J’espère que tu pourras reproduire la même chose chez toi .
Re: EPB
Publié : mer. 29/août/2012 11:18
par Backup
Merci Falsam ..
le probleme a été expliqué par Ar-s
Si tu fais chemin_defaut_compiler_32$ = #PB_Compiler_Home à la compilation d'EPB, c'est ton path qui sera renvoyé..
tout est dis
je vais lire le Registre pour connaitre l'emplacement du Compilateur

(faut juste que je remette la main sur ce P** de code

Re: EPB
Publié : mer. 29/août/2012 11:34
par Backup
pouvez vous me dire si ce code renvois bien VOTRE chemin de Purebasic (dernierement installé ... )
Code : Tout sélectionner
; Lire une chaine dans le registre
Procedure.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s) ; ====================================== ReadRegKey
;
hKey.l=0
KeyValue.s=Space(255)
DataSize.l=255
If RegOpenKeyEx_(OpenKey,SubKey,0,#KEY_READ,@hKey)
KeyValue=""
Else
If RegQueryValueEx_(hKey,ValueName,0,0,@KeyValue,@DataSize)
KeyValue=""
Else
KeyValue=Left(KeyValue,DataSize-1)
EndIf
RegCloseKey_(hKey)
EndIf
ProcedureReturn KeyValue
EndProcedure
Chemin_purebasic$ =ReadRegKey(#HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Purebasic_is1\","Inno Setup: App Path")+"\"
Debug Chemin_purebasic$
Re: EPB
Publié : mer. 29/août/2012 11:36
par SPH
reponse :
\
mais c'est peut etre normal vu que je n'ai pas installé PB. Je l'ai juste copié sur mon diskdur

Re: EPB
Publié : mer. 29/août/2012 11:40
par falsam
Re: EPB
Publié : mer. 29/août/2012 11:43
par kernadec
bonjour Dobro
oui il peut le dire
YES, c'est bon chez moi
Cordialement
Re: EPB
Publié : mer. 29/août/2012 11:45
par Ar-S
SPH a écrit :
mais c'est peut etre normal vu que je n'ai pas installé PB. Je l'ai juste copié sur mon diskdur

Évidement SPH...
Peut être aussi une solution sans passer par le registre, avec cette variable d'environnement sauf si c'est aussi à la compilation que la variable se créée.
Code : Tout sélectionner
ExamineEnvironmentVariables()
While NextEnvironmentVariable()
If EnvironmentVariableName() = "PB_TOOL_Compiler"
Chemincompiler$ = EnvironmentVariableValue()
EndIf
Wend
Debug Chemincompiler$
Re: EPB
Publié : mer. 29/août/2012 11:48
par Backup
Ar-S a écrit :SPH a écrit :
mais c'est peut etre normal vu que je n'ai pas installé PB. Je l'ai juste copié sur mon diskdur

Évidement SPH...
Peut être aussi une solution sans passer par le registre, avec cette variable d'environnement.
Code : Tout sélectionner
ExamineEnvironmentVariables()
While NextEnvironmentVariable()
If EnvironmentVariableName() = "PB_TOOL_Compiler"
Chemincompiler$ = EnvironmentVariableValue()
EndIf
Wend
Debug Chemincompiler$
ha oui

pas mal , il faudrait que SPH test aussi ce code pour voir
parceque c'est vrais que j'ai pas pensé a ceux qui copie le Dossier sans installation ...
SPH ? ça donne quoi chez toi , le code de Ar-s ??
Re: EPB
Publié : mer. 29/août/2012 11:56
par Ar-S
Arf je pense que ça chie car l'exe créé renvoie un string vide alors qu'à la compilation il marche.
Le soucis avec ton code c'est qu'il trouvera le chemin de la DERNIERE installation de PB.
Du coup si comme moi tu as installé PB x86 puis PB x64, c'est le chemin du X64 qui sera pris en considération ! du coup EPB ne sera pas si c'est du x64 ou pas. (Sauf si tu ajoutes une vérification de la valeur
DisplayName à la même clé (
PureBasic 4.60 (64 bit) dans mon cas) mais ça ne règlera pas le cas des versions "portable" de PB comme celle de SPH (et de ma version sur clé usb par exemple).
Donc je reviens à mon idée du classique
PathRequester() tout bête
P.S : je ne suis plus dispo je pars tirer à l'arc ^^ je re en fin d'aprem.
Re: EPB
Publié : mer. 29/août/2012 12:23
par Micoute
Je pense avoir une solution
Code : Tout sélectionner
Procedure.s CheminPureBasic() ; Retourne Chemin de PureBasic
SousCle.s="PureBasic.exe\DefaultIcon\"
RegOpenKeyEx_(#HKEY_CLASSES_ROOT,@SousCle,0,#KEY_READ,@GestionCle)
Sortie.s=Space(255)
TailleDonnees.l=Len(Sortie)
RegQueryValueEx_(GestionCle,@nom$,0,@Type,@Sortie,@TailleDonnees)
RegCloseKey_(GestionCle)
Sortie=GetPathPart(StringField(Sortie,1,","))
ProcedureReturn Sortie
EndProcedure
Debug CheminPureBasic()
J’espère que ça servira à quelqu'un
Re: EPB
Publié : mer. 29/août/2012 13:00
par Backup
Micoute a écrit :Je pense avoir une solution
Code : Tout sélectionner
Procedure.s CheminPureBasic() ; Retourne Chemin de PureBasic
SousCle.s="PureBasic.exe\DefaultIcon\"
RegOpenKeyEx_(#HKEY_CLASSES_ROOT,@SousCle,0,#KEY_READ,@GestionCle)
Sortie.s=Space(255)
TailleDonnees.l=Len(Sortie)
RegQueryValueEx_(GestionCle,@nom$,0,@Type,@Sortie,@TailleDonnees)
RegCloseKey_(GestionCle)
Sortie=GetPathPart(StringField(Sortie,1,","))
ProcedureReturn Sortie
EndProcedure
Debug CheminPureBasic()
J’espère que ça servira à quelqu'un
oui c'est clair
Maintenant, faut voir ce que va dire Ar-s
si ça lui donne le chemin vers compilateur x86 ou x64 ...
Ar-S a écrit :
Donc je reviens à mon idée du classique
PathRequester() tout bête

.
oui c'est deja implémenté, grace au petits bouton a droite du champs de chemin
mais je voulais essayer de donner un chemin par defaut du compilateur x86 ... une base quoi
test le code de Micoute ...
il est probable qu'il ne marche pas non plus avec la Version a SPH (portable )
puis ce code fait appel au registre ....
mais bon .. sait 'on jamais
