Aktuelle Zeit: 21.10.2019 12:09

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Problem mit dem count parameter der RegEnumKeyEX_()
BeitragVerfasst: 10.09.2004 21:03 
Offline

Registriert: 08.09.2004 15:06
Tag zusammen,
ich hab eine Frage bezüglich der winAPI, bei der Benutzung der RegEnumKeyEX() habe ich jedes mal Probleme, mit dem Wert, der angibt, den wievielten Schlüssel er auflisten soll.

bei Microsoft steht zu diesem Parameter folgendes:

dwIndex
[in] Specifies the index of the subkey to retrieve. This parameter should be zero for the first call to the RegEnumKeyEx function and then incremented for subsequent calls.
Because subkeys are not ordered, any new subkey will have an arbitrary index. This means that the function may return subkeys in any order.

gesagt, getan, Problem ist nur, wenn in dem Schlüssel 3 Unterschlüssel sind und ich setze den Wert 3, so erhalte ich ERROR_NO_MORE_ITEMS, was nicht weiter Verwunderlich ist, wenn ich jedoch 2 einsetze, und eigentlich den Namen eines Unterschlüssels genannt bekommen sollte stürzt das Programm mit der Fehlermeldung: "Vorgang 'read' kann auf dem Speicher nicht ausgeführt werden" vollständig ab, deswegen meine Frage, ob jemand schon ein ähnliches Problem gehabt hat oder sogar Hilfe weiß.

erst mal vielen Dank
Ralf


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 10.09.2004 21:12 
Offline
Benutzeravatar

Registriert: 09.09.2004 08:35
Wohnort: Hattersheim
Also bei mir klappt das, wenn ich bei 0 anfange und solange hochzähle wie ich #ERROR_SUCCESS zurückbekomme.

Code:
Procedure.s RegEnumKey(hKey.l, sKey.s, pc.s)
  ret.l
  hnd.l
  vKey.s
  vSize.l
  vLWT.FILETIME
  remhnd.l
  Index.l
  pc=UNC(pc)
   
  ret=RegConnectRegistry_(pc, hKey, @remhnd)
  If ret=#ERROR_SUCCESS
    ret=RegOpenKeyEx_(remhnd, sKey, 0, #KEY_ALL_ACCESS, @hnd)
    If ret=#ERROR_SUCCESS
      Index=0
      ret$=""
      While ret=#ERROR_SUCCESS
        vSize=255 : vKey=Space(255)
        ret=RegEnumKeyEx_(hnd, Index, @vKey, @vSize, 0, 0, 0, @vLWT)
        If ret=#ERROR_SUCCESS
          ret$=ret$+vKey+"; "
        ElseIf Index=0
          ret$="*error: cannot enumerate keys*"
        Else
          ret$=Left(ret$,Len(ret$)-2)
        EndIf 
        Index+1
      Wend
    Else
      ret$="*error: cannot access key*"
    EndIf
  Else
    ret$="*error: cannot access remote registry*"
  EndIf 
  RegCloseKey_(remhnd)
  ProcedureReturn ret$
EndProcedure


_________________
PB / jaPBe jeweils aktuellste Version, seit 3.62 dabei, XP sp3 de/en & W7 en


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 10.09.2004 23:13 
Offline

Registriert: 08.09.2004 15:06
Danke für die source, klappt jetzt auch, hab den fehler gefunden

bis dann
Ralf


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye