Hej, jag har några nycklar i registret med siffra till namn, tex 0,1 &2. Du kan inte döpa om dem. Utan du får kopiera den först sedan ta bort den. Ok, o om jag kopierar den, får jag me innehållet då? Berätta istället vad du lagrar i nycklarna, vad du använder för att läsa och skriva till dem, osv... vad jag använder? du menar kodmässigt då.... Någon? Som någon tidigare påpekade finns det ingen kopiera funktion i API't. Jag har motsvarande funktion i en egen app och jag fixar detta genom att okidoki, och detta går snabbt att genomföra? själva "kopieringen" asså? Jag har fixat dfenna nu genom en kopiering av nycklarna.Döpa om beintlig nyckel i register, hur?
jag vill i mitt program ta bort nyckel nr 1 (tex) och då skall nyckel efter döpas till 1, om det finns en nyckel 3 så blir den 2 osv.
alltså alla nycklar efter den som tas bort skall döpas om, med en siffra mindre så jag inte får ett "glapp" i ordningen.
Hur gör jag?
EDIT: Jag vill ha alla värden kvar i nyckeln/nycklarna som döps om.
/BSv: Döpa om beintlig nyckel i register, hur?
Sv: Döpa om beintlig nyckel i register, hur?
Hur gör jag i så fall?
/BSv: Döpa om beintlig nyckel i register, hur?
Sv: Döpa om beintlig nyckel i register, hur?
jag lagrar värden i nycklarna, vad menar du?
tex att skapa en nyckel
<code>
Public Function RegCreateKeyName()
Dim retval As Long, szbuffer As String, szbuffer2 As String
Dim phkResult As Long, SA As SECURITY_ATTRIBUTES, create As Long
SA.bInheritHandle = True
SA.lpSecurityDescriptor = 0
SA.nLength = Len(SA)
'------------------------------------------------------------------------
retval = RegCreateKeyEx(hKey, SubKey & NewSubKey, _
0, "", REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, _
SA, phkResult, create)
retval = RegSetValueEx(phkResult, NewStringName, 0, REG_SZ, _
NewStringValue, Len(NewStringValue))
RegCloseKey phkResult
End Function
</code>Sv: Döpa om beintlig nyckel i register, hur?
Jag har asså ett program(mitt berömda elementstyrningsprogram) som jag har tre sensorer till, det blir sensor nr 0 till 2.
Programmet räknar dessa o lägger upp en termometer för varje sensor, lägga till en extra är inga problem men säg att jag vill ta bort sensorn i hallen (nr 1) då skulle det bli glapp i räkningen då jag kontrollerar hur många sensorer det finns, tar jag bort 1 så tror programmet att det finns 3 iaf. (2+1 då första e 0)
Om jag tar bort nr 1 o döper om nr 2 o efterföljande med siffra - 1 så skulle allt va ok.
/BSv: Döpa om beintlig nyckel i register, hur?
#1 Skapa en ny nyckel
#2 Loopa igenom den gammla nyckelns värden och lägg till dessa
i den nya nyckeln
#3 Radera den gammla myckeln
I ditt fall får du repetera detta till alla nycklar är flyttade.
Jag skapade en Collection av mina registernycklar och värden, detta underlättade enormt när jag sedan loopade igen värdena och lade till dessa i den nyskapde nyckel, det är bara att göra en "For each" på collection objektet.
Bifogare ett exempel på min loop för att flytta värden, det är varje värde i collection objektet (colKeys) jag loopar igenom och anropar funktionen AddValue som lägger till värdet i den nya nyckeln.
<code>
'Loopa igenom befintlig nyckel och lägg upp motsvarande värden i den nya nyckeln
For Each Value In colKeys(KeyName)
Call AddValue(Value.ValueName, Value.Value)
Next
</code>Sv: Döpa om beintlig nyckel i register, hur?
/BSv: Döpa om beintlig nyckel i register, hur?
Tackar.