Page 1 sur 1
Registre
Publié : lun. 12/avr./2010 22:26
par aliong
Bonsoir,
je commence tout juste la prog avec pure basic, je cherche a écrire une clef dans la base de registre. j'ai trouvé plusieurs lib qui le permettent apparemment seulement à partir de la version 4.40 il manquerait d'autre lib StringExtension. les lib que j'essaie d'utiliser sont : PBOSL et RegIni les deux me donne la même erreur (StringExtension).
quelqu'un aurait la solution à se problème ?
par avance merci et bonne prog a tous !
Re: Registre
Publié : lun. 12/avr./2010 22:42
par Ar-S
Bonsoir,
As tu la version de demo de Pb ou pas ? si tu ne l'as pas, les lib que j'utilise se servent d'API windows, ce qui est in-interprétable par la version demo de PB.
Re: Registre
Publié : lun. 12/avr./2010 22:50
par Backup
.....................
Re: Registre
Publié : lun. 12/avr./2010 22:54
par aliong
bonsoir
étant passionné par la prog depuis des année j'ai cracker et acheter directement la licence de purebasic donc je suis en version complète !

j'ai trouvé une réponse qui utilise l'api windows ! en faite j'étais déjà tombé dessus mais je n'avais pas vraiment fait attention à toutes les réponses ! Comptois donne une bonne solution ici :
http://www.developpez.net/forums/d59044 ... -registre/
par contre je suis quand même intéresse si c'est possible pour utiliser les lib pbosl et reg_ini sur la v 4.4
merci pour ta rapidité de reponse !

Re: Registre
Publié : lun. 12/avr./2010 22:56
par aliong
merci Dobro c'est l'api windows comme l'exemple de mon lien . par contre pour cette erreur StringExtension c'est du a quoi ?
Re: Registre
Publié : lun. 12/avr./2010 23:01
par Backup
aliong a écrit : par contre pour cette erreur StringExtension c'est du a quoi ?
quel erreur ?

sur quel code ?
Re: Registre
Publié : lun. 12/avr./2010 23:04
par aliong
lorsque je veux tester PBOSL l'exemple NTService (creation de services):
j'ai une erreur a la compi qui me dis StringExtension manquant ...
Code : Tout sélectionner
Procedure MyFunction()
If OpenWindow(0, 100, 200, 195, 260, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow ;
Quit = 1
EndIf
Until Quit = 1
EndIf
EndProcedure
Procedure NTNotify(Parameter)
Select Parameter
Case 1
MessageRequester("Info","Service is stopped",0)
Case 2
MessageRequester("Info","Service is paused",0)
Case 3
MessageRequester("Info","Service is resumed",0)
EndSelect
EndProcedure
Procedure.s GetExeName()
sApp.s=Space(256)
GetModuleFileName_(GetModuleHandle_(0), @sApp, 256)
ProcedureReturn sApp
EndProcedure
ServiceName.s = "MyService"
C.s=LCase(ProgramParameter())
If C.s="/?" Or c.s="/h"
MessageRequester("Info","NT-Services the easy way",0)
End
EndIf
If C.s="/install"
DisplayName.s = "NT Service Example by Rings" ;The name displayed in the SCM And sent To functions query its display name
PathToServiceEXE.s = GetExeName(); Full path to the service, it can be anywhere you wish.
; start types
#SERVICE_BOOT_START = $00000000
#SERVICE_SYSTEM_START = $00000001
#SERVICE_AUTO_START = $00000002
#SERVICE_DEMAND_START = $00000003
#SERVICE_DISABLED = $00000004
Installservice(ServiceName,DisplayName,PathToServiceEXE,"hallo ein bsps",#SERVICE_AUTO_START)
End
EndIf
If C.s="/remove"
RemoveService(ServiceName)
End
EndIf
;NTService(ServiceName.s,@MyFunction())
Service(ServiceName.s,@MyFunction(),@NTNotify()) ;the Notify is optional
Re: Registre
Publié : lun. 12/avr./2010 23:06
par aliong
et meme erreur avec la lib pour la base de registre RegINI code test :
Code : Tout sélectionner
curdir.s=Space(256)
GetCurrentDirectory_(256,@curdir)
If Right(curdir,1)<>"\":curdir+"\":EndIf
inifile$=curdir+"Testfile.ini"
;-Set Get INI File
If SetIniKey("Data","Key1","99",inifile$)
MessageRequester("Done","Value written to INI",0)
EndIf
value$=GetIniKey("Data","Key1","xxx",inifile$)
MessageRequester("","INI value returned was: "+value$,0)
;-Set Registry Key
If SetRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\TestKey","MyKey","Test")
MessageRequester("Done","Value written to Registry",0)
EndIf
;-Get Value of Registry Key
value$=GetRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\TestKey","MyKey")
MessageRequester("","Registry value returned was: "+value$,0)
;-Get Key and Value Pairs from Registry
Repeat
result$=ListRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\TestKey",idx)
Debug result$
idx+1
Until result$=""
;-Delete Key and Value from Registry
If DeleteRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\TestKey","MyKey")
MessageRequester("","Registry Key and Value have been Deleted",0)
EndIf
;-Remove Key Registry
If RemoveRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\TestKey")
MessageRequester("","Registry Key has been Removed",0)
EndIf
Re: Registre
Publié : lun. 12/avr./2010 23:07
par Backup
a oui ta question du debut !!
ben je sais pas , ça peut venir d'une mauvaise installation d'une lib
(bien mettre ta lib dans le dossier \PureLibraries\UserLibraries )
et peut etre que la lib que tu utilise n'as pas ete compilé pour la V 4.41 ....
cette incompatibilité peut creer un plantage de ce genre

Re: Registre
Publié : lun. 12/avr./2010 23:14
par aliong
Dobro a écrit :a oui ta question du debut !!
ben je sais pas , ça peut venir d'une mauvaise installation d'une lib
(bien mettre ta lib dans le dossier \PureLibraries\UserLibraries )
et peut etre que la lib que tu utilise n'as pas ete compilé pour la V 4.41 ....
cette incompatibilité peut creer un plantage de ce genre

ok merci bien pour toutes tes réponses en tout cas j'ai testé ton code c'est parfait !
bonne continuation à bientôt
