Jerry Scott: Registry: "unbekannte" Schlüssel auslesen - wie?

Hallo,

ich versuche für eine HTA-Anwendung eine js-Funktion zu schrieben, die aus der Registry "unbekannte" UnterSchlüssel (key's) liest, damit sie in einer Dropdown-Liste aufgelistet werden können, hat jemand eine Lösung?

z.B.:
Auflistung aller verfügbaren DFÜ-Verbindungen

HKEY_CURRENT_USER\RemoteAccess\Addresses\Online-DSL
HKEY_CURRENT_USER\RemoteAccess\Addresses\Online-ISDN
HKEY_CURRENT_USER\RemoteAccess\Addresses\Online-Modem
HKEY_CURRENT_USER\RemoteAccess\Addresses...
HKEY_CURRENT_USER\RemoteAccess\Addresses\key

oder vielleicht so:

HKEY_CURRENT_USER\RemoteAccess\Profile\Online-DSL\ HKEY_CURRENT_USER\RemoteAccess\Profile\Online-ISDN\ HKEY_CURRENT_USER\RemoteAccess\Profile\Online-Mobile\ HKEY_CURRENT_USER\RemoteAccess\Profile...\ HKEY_CURRENT_USER\RemoteAccess\Profile\name\

Durch Googlen habe ich leider sehr wenig in Erfahrung gebracht. "Bekannte" Werte ein- und auslesen kann ich.

Ich danke schonmal im voraus

  1. Hi Jerry,

    ich versuche für eine HTA-Anwendung eine js-Funktion zu schrieben, die aus der Registry "unbekannte" UnterSchlüssel (key's) liest, damit sie in einer Dropdown-Liste aufgelistet werden können, hat jemand eine Lösung?

    ich hab die API-Funktionen gerade nicht alle im Kopf, und noch weniger weiß ich, ob entsprechende Funktionen auch im entsprechenden JScript-Objekt verfügbar sind. Aber such mal nach RegEnumKeys... so oder sehr ähnlich müsste die Funktion heißen, die du suchst. Die liest dann innerhalb eines Schlüssels (den musst du natürlich angeben) die Namen aller Unterschlüssel und/oder Daten aus.

    Good luck,

    Martin

    1. ich hab die API-Funktionen gerade nicht alle im Kopf, und noch weniger weiß ich, ob entsprechende Funktionen auch im entsprechenden JScript-Objekt verfügbar sind. Aber such mal nach RegEnumKeys... so oder sehr ähnlich müsste die Funktion heißen, die du suchst. Die liest dann innerhalb eines Schlüssels (den musst du natürlich angeben) die Namen aller Unterschlüssel und/oder Daten aus.

      Good luck,

      Martin

      Hi Martin,

      vielen Dank ...mache mich mal auf die Suche. Ist ja anscheinend eine echte Herausforderung.

      Gruß Jerry

    2. RegEnumKeys... so oder sehr ähnlich müsste die Funktion heißen,
      die du suchst

      Good luck,

      Martin

      habe hier im Forumsarchiv unter dem Stichwort "RegEnumKeys" leider nichts gefunden.
      Auch die Suche in Google "Groups" und "Web" war eher unbefriedigend.

      Es muss doch irgendeine eine Lösung für Javascript geben?

      Gruß Jerry

      1. Hallo Jerry,

        habe hier im Forumsarchiv unter dem Stichwort "RegEnumKeys" leider nichts gefunden.
        Auch die Suche in Google "Groups" und "Web" war eher unbefriedigend.

        aaah, falsche Suchstrategie.  :-(
        Nee, wenn du hier im Forum oder im Archiv fündig geworden wärst, das hätte mich überrascht.

        Es muss doch irgendeine eine Lösung für Javascript geben?

        Nein, sicher nicht. Javascript im strengen Sinn "kennt" nichts außerhalb des Browserfensters, das ist per Definition so.

        Welchen Ansatz verfolgst du denn bisher? Eigentlich benutzt du doch kein Javascript, sondern ein ActiveX-Objekt, dessen Schnittstellen du mit Javascript ansprichst. Und wenn man es so richtig genau nimmt, dann ist es nicht einmal Javascript, sondern JScript, die proprietäre JS-Erweiterung von Microsoft. Also laufen hier alle Fäden bei MS-Techniken zusammen.

        Wie heißt denn das Objekt, das du bisher schon verwendest? Mit dem Namen dieses Objekts würde ich bei Microsoft (msdn) mal auf die Suche gehen. Dann solltest du auch sämtliche Funktionen finden, die eben dieses Objekt bietet.

        Im Windows-API heißen die gesuchten Funktionen übrigens tatsächlich RegEnumKeys() und RegEnumValues(), da war meine Erinnerung nicht ganz falsch.

        So long,

        Martin

        1. Es muss doch irgendeine eine Lösung für Javascript geben?

          Nein, sicher nicht. Javascript im strengen Sinn "kennt" nichts außerhalb des Browserfensters, das ist per Definition so.

          Welchen Ansatz verfolgst du denn bisher? Eigentlich benutzt du doch kein Javascript, sondern ein ActiveX-Objekt, dessen Schnittstellen du mit Javascript ansprichst. Und wenn man es so richtig genau nimmt, dann ist es nicht einmal Javascript, sondern JScript, die proprietäre JS-Erweiterung von Microsoft. Also laufen hier alle Fäden bei MS-Techniken zusammen.

          JScript, du hast naturlich recht :-)

          ...bin fündig geworden mit "RegObj.dll" von MS (ActiveX-Objekt)

          Folgendes Beispiel (ungetestet) ...listet mir alle verfügbaren DFÜ-Verbindungen auf.

          var objRegistry = new ActiveXObject("RegObj.Registry");
          var objRegKey = objRegistry.RegKeyFromString("\HKEY_CURRENT_USER\RemoteAccess\Profile")
          for each objRegKey in objRegKey.SubKeys
          WScript.Echo(objRegKey.name)
          next

          Gruss Jerry