Skip to content

Instantly share code, notes, and snippets.

@a46554
Created May 7, 2018 03:22
Show Gist options
  • Select an option

  • Save a46554/0902d4bf5f1b623f123d80f74d26d659 to your computer and use it in GitHub Desktop.

Select an option

Save a46554/0902d4bf5f1b623f123d80f74d26d659 to your computer and use it in GitHub Desktop.

Revisions

  1. a46554 created this gist May 7, 2018.
    48 changes: 48 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,48 @@
    package main

    import (
    "fmt"
    "log"
    "time"

    "golang.org/x/sys/windows/registry"
    )

    func main() {

    //Open the key
    k, err := registry.OpenKey(registry.LOCAL_MACHINE, `HARDWARE\\DEVICEMAP\\SERIALCOMM`, registry.QUERY_VALUE)
    if err != nil {
    log.Fatal(err)
    }
    defer k.Close()

    //Get the key info
    ki, err := k.Stat()

    if err != nil {
    log.Fatal(err)
    }

    fmt.Printf("SubkeyCount: %d ValueCount: %d\n", ki.SubKeyCount, ki.ValueCount)

    //Get the value count
    s, err := k.ReadValueNames(int(ki.ValueCount))
    if err != nil {
    log.Fatal(err)
    }
    kvalue := make([]string, ki.ValueCount)

    //List all the string value
    for i, test := range s {
    q, _, err := k.GetStringValue(test)
    if err != nil {
    log.Fatal(err)
    }
    kvalue[i] = q
    }

    fmt.Printf("%s \n", kvalue)

    time.Sleep(1000 * time.Millisecond)
    }