writeregister ecrit qu'une parte de l'entree

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
ChaudEf
Messages : 179
Inscription : dim. 27/déc./2015 17:02
Localisation : Strasbourg

writeregister ecrit qu'une parte de l'entree

Message par ChaudEf »

bonsoir, je compile en unicode, et lorsque j'inscris quelque chose dans le registry, c'a n'inscrit que la moitie de la chaine.
il y a une solution?
merci
Windows 10 x64 -- Purebasic 5.70 LTS x86
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: writeregister ecrit qu'une parte de l'entree

Message par falsam »

Pour ça faudrait montrer un bout de code pour voir comment tu procèdes.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
ChaudEf
Messages : 179
Inscription : dim. 27/déc./2015 17:02
Localisation : Strasbourg

Re: writeregister ecrit qu'une parte de l'entree

Message par ChaudEf »

Code : Tout sélectionner

Procedure.s readRegister(OpenKey.l, subkey.s, KeySet.s)
	Define.l hKey, datasize
	Define.s KeyValue, result
	
	hKey = 0 
  KeyValue = Space(255) 
  datasize = 255 
  
  If RegOpenKeyEx_(OpenKey, subkey, 0, #KEY_READ, @hKey)  = 0 
    If RegQueryValueEx_(hKey, KeySet, 0, 0, @KeyValue, @datasize) = 0 
    	result = Left(KeyValue, datasize - 1) 
    EndIf 
  EndIf 
  
  ProcedureReturn result
EndProcedure

Procedure.l writeRegister(OpenKey.l, SubKey.s, keyset.s, keyvalue.s)
	Define.l hKey, DataSize, result
	
	hKey = 0
	
  If RegCreateKey_(OpenKey,SubKey,@hKey) = 0
  	If RegSetValueEx_(hKey,keyset,0,#REG_SZ,@keyvalue, Len(keyvalue)) = 0
  		result = 1
    EndIf 
    RegCloseKey_(hKey)
  EndIf
  
  ProcedureReturn result 
EndProcedure

Procedure.l deleteRegister(OpenKey.l, SubKey.s, keyset.s)
	Define.l hKey, result
	
	hKey = 0
	
  If RegOpenKey_(OpenKey, SubKey, @hKey) = 0
  	If RegDeleteValue_(hKey, keyset) = 0
  		result = 1
    EndIf 
    RegCloseKey_(hKey)
  EndIf
  
  ProcedureReturn result 
EndProcedure

writeRegister(#HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", "winsys", "test")
Debug readRegister(#HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", "winsys")
Windows 10 x64 -- Purebasic 5.70 LTS x86
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: writeregister ecrit qu'une parte de l'entree

Message par falsam »

Essayes en remplaçant @KeyValue par Ascii(KeyValue) idem pour @datasize par Ascii(datasize)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
ChaudEf
Messages : 179
Inscription : dim. 27/déc./2015 17:02
Localisation : Strasbourg

Re: writeregister ecrit qu'une parte de l'entree

Message par ChaudEf »

marche pas
Windows 10 x64 -- Purebasic 5.70 LTS x86
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: writeregister ecrit qu'une parte de l'entree

Message par GallyHC »

Bonjour,

As tu bien fait ce que ta dit "Falsam" pour le "write" et aussi le "read"?

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: writeregister ecrit qu'une parte de l'entree

Message par Ar-S »

Ce serait pratique si dans votre signature (editer votre profile) vous indiquiez votre version windows et votre version de PB.
ça aide parfois à diriger les recherches en cas d'erreurs.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
ChaudEf
Messages : 179
Inscription : dim. 27/déc./2015 17:02
Localisation : Strasbourg

Re: writeregister ecrit qu'une parte de l'entree

Message par ChaudEf »

ben oui c'est ca le probleme, je suis sous l'ancienne version de pb, et quand j'installe la nouvelle version (5.5) ca me dit
can't load built-in libraries, please reinstall purebasic
:(
Windows 10 x64 -- Purebasic 5.70 LTS x86
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: writeregister ecrit qu'une parte de l'entree

Message par Marc56 »

ChaudEf a écrit :ben oui c'est ca le probleme, je suis sous l'ancienne version de pb, et quand j'installe la nouvelle version (5.5) ca me dit
can't load built-in libraries, please reinstall purebasic
:(
Cela veut dire que tu installes PB dans un répertoire qui contient déjà des vieilles libs (tiers) incompatibles 5.50.
Installe PB 5.50 dans un nouveau répertoire (vide) et en mode admin de préférence.

Tu peux avoir autant d'installation que tu veux dans des répertoires différents.
Cela permet d'utiliser bêtas, standards, LTS, x32 et x64.

Sauf paramétrage spécial, toutes les versions utiliseront les même paramètres de préférences
Ce qui évite de ré-paramétrer chaque installation (couleur, modèles, historique).
(Sauvegarder le répertoire %appdata%\purebasic)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: writeregister ecrit qu'une parte de l'entree

Message par Ar-S »

Tu peux suivre une arborescence comme ça quand tu installes :
PB/X64/4.40
PB/X86/4.40
PB/X64/5.50
PB/X86/5.50

Ainsi tu n'as jamais ce genre de soucis.

Ensuite tu n'utilise qu'une interface (de la dernière version tant qu'à faire) et tu indiques les différents chemins des autres versions de PB que tu as.
Dans >Fichier/préférences/compilateur<

Pour tes codes c'est pareil...
J'ai un dossier CODES PB en dehors du répertoire PB avec des sous dossiers 5.50, 4.43 etc...
Ainsi tu peux utiliser ET compiler de vieux codes si besoin avec la même interface.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
El Papounet
Messages : 57
Inscription : mer. 09/juin/2010 23:47

Re: writeregister ecrit qu'une parte de l'entree

Message par El Papounet »

Remplace la ligne 24 par:

Code : Tout sélectionner

If RegSetValueEx_(hKey,keyset,0,#REG_SZ,@keyvalue, StringByteLength(keyvalue)) = 0
Avatar de l’utilisateur
ChaudEf
Messages : 179
Inscription : dim. 27/déc./2015 17:02
Localisation : Strasbourg

Re: writeregister ecrit qu'une parte de l'entree

Message par ChaudEf »

El Papounet a écrit :Remplace la ligne 24 par:

Code : Tout sélectionner

If RegSetValueEx_(hKey,keyset,0,#REG_SZ,@keyvalue, StringByteLength(keyvalue)) = 0
Merci mais ca n'a pas aide, ca ne marche toujours pas.

j'ai reinstalle purebasic, et toujours la meme erreur, mais l'ancienne version marche (je suis reste sur 5.30)
Windows 10 x64 -- Purebasic 5.70 LTS x86
Répondre