Aktuelle Zeit: 17.08.2019 14:53

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Frage bezüglich Registryschlüsseln
BeitragVerfasst: 08.09.2004 15:43 
Offline

Registriert: 08.09.2004 15:06
Hallo zusammen, meine erste Frage im neuen Forum, hab schon im alten gesucht aber nichts gefunden.

Also: ich muss in der Registry einen Schlüssel ersetzen, eigentlich nicht schwer, aber:

ich muss diesen Schlüssel für jeden Benutzer, der unter HKEY_USERS eine ID hat ändern.
Das Problem ist, dass ich keine Möglichkeit kenne, die in einem Schlüssel vorhandenen weiteren Schlüssel auszulesen/aufzulisten :| , für die in einem Schlüssel vorhandenen Werte geht das zum Beispiel mit Hilfe der REGIni-Library, aber halt nur für Werte und nicht für Schlüssel.

so, vielen Dank für eure Überlegungen zu diesem Thema, bis dann

Ralf


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 08.09.2004 17:53 
Offline

Registriert: 08.09.2004 13:19
Dann schau dir das mal an, stand irgendwann schonmal irgendwo hier im Forum :
Code:

; Autor: Manne
; Datum: 30.03.2003
; PrgName: SoftwareInventory


;- Deklaration der Variablen
DefType.s NodeName, cName, OutDir, OutFile, tOutFile, columnheadings, sName, Subkey, zeile, datum
DefType.l check, hkey, Cnt, pos, lpdwDisposition
NewList subName.s()

;- Zuweisen der Werte
#BUFFER_SIZE = 255
NodeName = Space(256)
cName = "COMPUTERNAME"
columnheadings = "NodeName,DisplayName,Description,Publisher,sVersion,ProductID"
Subkey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
OutDir = "C:\"
hkey = 0

;- Deklaration der Proceduren
Procedure.s ExePath()
  tmp$ = Space(1000)
  GetModuleFileName_(0,@tmp$,1000)
  ProcedureReturn GetPathPart(tmp$)
EndProcedure

Procedure.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s)
  hKey.l=0
  keyvalue.s=Space(255)
  datasize.l=255
 
  If RegOpenKeyEx_(OpenKey,SubKey,0,#KEY_READ,@hKey)
    MessageBeep_(#MB_ICONEXCLAMATION)
    End
  Else
    If RegQueryValueEx_(hKey,ValueName,0,0,@keyvalue,@datasize)
        keyvalue = ""
    Else
        keyvalue=Left(keyvalue,datasize-1)
    EndIf
    RegCloseKey_(hKey)
  EndIf
   
  ProcedureReturn keyvalue
EndProcedure

;- Mainprogramm Registry bearbeiten, Ziel-File schreiben u.a.
GetEnvironmentVariable_(cName, NodeName, 256)

If NodeName = ""
  End
EndIf

tOutFile = ExePath() + "tmp" + ".csv"
OutFile = OutDir + NodeName + ".csv"


check = CreateFile(0, tOutFile)
WriteStringN(columnheadings)

RegCreateKeyEx_(#HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Uninstall\a", 0, 0, #REG_OPTION_NON_VOLATILE, #KEY_CREATE_SUB_KEY, 0, @hkey, @lpdwDisposition)
       
    If RegOpenKey_(#HKEY_LOCAL_MACHINE, Subkey, @hKey) = 0         
;       ;Enumerate the keys
        While RegEnumKeyEx_(hKey, Cnt, sName.s, @Ret, 0, 0, 0, 0) <> #ERROR_NO_MORE_ITEMS
            Cnt = Cnt + 1
            AddElement(subName())
            subName() = sName
            sName = Space(#BUFFER_SIZE)
            Ret.l= #BUFFER_SIZE
        Wend
    Else
        WriteString("Fehler, konnte Registrierung nicht öffnen!")
    EndIf       
RegCloseKey_(hkey)

pos = 1

While pos <= Cnt - 1
  SelectElement(subName(), pos)

  DisplayName.s = ReadRegKey(#HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Uninstall\"+ subName(), "DisplayName")
  Description.s = ReadRegKey(#HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Uninstall\"+ subName(), "Comments")
  Publisher.s = ReadRegKey(#HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Uninstall\"+ subName(), "Publisher")
  sVersion.s = ReadRegKey(#HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Uninstall\"+ subName(), "DisplayVersion")
  ProductID.s = ReadRegKey(#HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Uninstall\"+ subName(), "ProductID")

  If DisplayName = ""
    DisplayName = subName()
  EndIf

  zeile = Nodename + "," + DisplayName + "," + Description + "," + Publisher + "," + sVersion + "," + ProductID
  WriteStringN(zeile)

  pos = pos + 1
Wend

datum = FormatDate("%dd.%mm.%yyyy", Date())
WriteStringN("")
WriteStringN("SoftwareInventory vom "+ datum)
CloseFile(0)

RegDeleteKey_(#HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Uninstall\a")

CopyFile(tOutFile, OutFile)
DeleteFile(tOutFile)

End


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: 09.09.2004 08:01 
Offline

Registriert: 08.09.2004 15:06
Ahhh, an die API hab ich nicht gedacht :roll: naja, aber damit sollte es gehen,

thx


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: 0 Mitglieder und 5 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