Hey,
habe einen frage möchte gerne in allen unterschlüsseln eine bestimmte zeichenfolge einen wert abfragen wie mache ich das?
Hey,
habe einen frage möchte gerne in allen unterschlüsseln eine bestimmte zeichenfolge einen wert abfragen wie mache ich das?
Sorry, wenn ich es direkt sage !!!
Was möchtest Du, bitte?
In allen Unterschlüsseln? Frage stellt sich mir: von welchem Hauptschlüssel?
Eine bestimmte Zeichenfolge betrifft es? Stellt sich mir die Frage: welche Zeichenfolge?
Einen bestimmten Wert? Stellt sich mir die Frage: welchen Wert möchtest Du abfragen?
Wie Du das machst, das kann ich derzeitig nicht ohne Antwort auf o. g. Fragen beantworten
Regread Schlüssel Abfragen: klick hier. Aber das ist Dein eigenes Thema. Baut Deine Frage auf dieses Thema auf ???
LG, Lina.
Hey,
ich will alles was unter hklm\software\log\
einen bestimmte zeichen folge abfragen" zeichenfolgetest"
und mir anzeigenlassen was nicht wert01 ist.
hklm\software\log\test1\zeichenfolgetest = wert01
hklm\software\log\test2\zeichenfolgetest = wert0111
hklm\software\log\test3\zeichenfolgetest = wert01
hklm\software\log\test4\zeichenfolgetest = wert04
hklm\software\log\test5\zeichenfolgetest = wert01
hklm\software\log\test6\zeichenfolgetest = wert01
hklm\software\log\test7\zeichenfolgetest = wert01222
hklm\software\log\test8\zeichenfolgetest = wert02
hklm\software\log\test9\zeichenfolgetest = wert01
hklm\software\log\test10\zeichenfolgetest = wert01
hklm\software\log\test11\zeichenfolgetest = wert01
Eine idee?
Schau dir mal RegEnumKey an.
Naja von den Gedanken würde ich sagen so:
$var = RegRead("hklm\software\log", "test1\zeichenfolgetest")
if $var <> "wert01" Then
MsgBox(4096, "Ordner für Programme:", $var)
$var2 = RegRead("hklm\software\log", "test2\zeichenfolgetest")
if $var2 <> "wert01" Then
MsgBox(4096, "Ordner für Programme:", $var2)
,
wobei ich meine das man noch irgendwie $var bzw. auch $var2 zuvor in Zahlenwert und Buchstabenwert aufteilen muss (splitten). Aber da fällt mir auf der Schnelle nichts ein. Habe auch gerade nur die eine Hand zum schreiben frei.
Vielleicht ist Dir damit ansatzweise geholfen.
LG, Lina.
ZitatSchau dir mal RegEnumKey an.
in Verbindung mit RegEnumVal (Beispiel in der Hilfe) sollte das kein Problem sein...
habe mal eine frage.
[autoit]For $i = 1 to 100
$var = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\Autoit", $i)
if @error <> 0 Then ExitLoop
MsgBox(4096, "Wertname #" & $i & " unter dem AutoIt3 Schlüssel", $var)
next
Damit kriege ich alle zeichenfolge raus aber,
wie kann man damit einen bestimmte zeichenfolge abfragen und den wert und alle unterschlüssel?
Hey,
was mache ich falsch?
For $i= 1 to 10
$var = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE", $i)
If @error <> 0 then ExitLoop
$var1 = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE" & $var, $i)
MsgBox(4096, "" & $i & "", $var1)
Next
Kriege die MSG BOX
Das system kann die angebene Datei nicht finden ???
Zitatwas mache ich falsch?
nicht wenig
also erstmal haste nen backslash vergessen (hinter SOFTWARE):
[autoit]$var1 = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\" & $var, $i)
[/autoit]2tens is der vorgang nicht logisch:
mit deinem quellcode ausschnitt suchst du in Software die ersten 10 keys raus. dann suchst du im key nr.1 den schlüssel nr 1, dann in key 2 den schlüssel nr 2 dann in key 3 den schlüssel nr 3.
siehste was falsch is?
in software sind nochmal viele keys welche nochmal unterkeys haben und welche nochmal unterkeys haben...
du suchst aber unter software\key1 -software\key10 nach schlüsseln.
du müsstest erst so lange durchgehn bis kein unterkey mehr existiert, und dann in deiner schlüsselliste den wert auslesen. dann den nächsten schlüssel, dann den nächsten schlüssel, ... und wenn keiner mehr existiert in den nächsten unterkey und da alle schlüssel auslesen.
das ganze kann ich mir vorstellen wird nicht spaßig
Hey,
ich habe es auch mit dem '\' leider der geliche fehler??
die zeichenfolge die ich abfragen will ist im root jeweil in dem schlüssel den ich abfragen will
ich habe software als beispiel genommen.
so in etwa sieht es aus:
hklm\software\log\test1\zeichenfolgetest = wert01
hklm\software\log\test2\zeichenfolgetest = wert0111
hklm\software\log\test3\zeichenfolgetest = wert01
hklm\software\log\test4\zeichenfolgetest = wert04
hklm\software\log\test5\zeichenfolgetest = wert01
hklm\software\log\test6\zeichenfolgetest = wert01
hklm\software\log\test7\zeichenfolgetest = wert01222
hklm\software\log\test8\zeichenfolgetest = wert02
hklm\software\log\test9\zeichenfolgetest = wert01
hklm\software\log\test10\zeichenfolgetest = wert01
hklm\software\log\test11\zeichenfolgetest = wert01
kann mir jemand noch einen tipp geben komme oirgendwie nicht weiter??
Hi,
[autoit]#include <array.au3>
[/autoit][autoit][/autoit][autoit]Local $keys [1], $startkey = "HKEY_LOCAL_MACHINE\SOFTWARE\log", $string = "wert01", $gefunden [1]
[/autoit][autoit][/autoit][autoit]For $i= 1 to 100
$var = RegEnumKey($startkey, $i)
If @error <> 0 then ExitLoop
$keys [$i - 1] = $var
ReDim $keys [$i + 1]
Next
$count = 0
For $i = 0 To UBound ($keys) - 1
$regkey = RegRead ($startkey & "\" & $keys [$i], "zeichenfolgetest")
If @error <> 0 then ExitLoop
If $regkey <> $string Then
$gefunden [$count] = $regkey
$count += 1
Redim $gefunden [$count + 1]
EndIf
Next
If $count > 0 Then _ArrayDisplay ($gefunden)
[/autoit];-))
Stefan
Hey,
also gdamit klappt es super
[autoit]#include <array.au3>
[/autoit][autoit][/autoit][autoit]Local $keys [1], $startkey = "HKEY_LOCAL_MACHINE\SOFTWARE\log", $string = "wert01", $gefunden [1]
[/autoit][autoit][/autoit][autoit]For $i= 1 to 100
$var = RegEnumKey($startkey, $i)
If @error <> 0 then ExitLoop
$keys [$i - 1] = $var
ReDim $keys [$i + 1]
Next
$count = 0
For $i = 0 To UBound ($keys) - 1
$regkey = RegRead ($startkey & "\" & $keys [$i], "zeichenfolgetest")
If @error <> 0 then ExitLoop
If $regkey <> $string Then
$gefunden [$count] = $regkey
$count += 1
Redim $gefunden [$count + 1]
EndIf
Next
If $count > 0 Then _ArrayDisplay ($gefunden)
[/autoit]Würde aber gerne den Schlüssel mit anzeigen lassen
aber so geht es nicht
[autoit]_ArrayDisplay ($keys & $gefunden)
[/autoit]was muss ich jetzt dafür tuen damit es Klappt?
Hi,
so vielleicht:
[autoit]#include <array.au3>
[/autoit][autoit][/autoit][autoit]Local $keys [1] [2], $startkey = "HKEY_LOCAL_MACHINE\SOFTWARE\log", $string = "wert01"
[/autoit][autoit][/autoit][autoit]For $i= 1 to 100
$var = RegEnumKey($startkey, $i)
If @error <> 0 then ExitLoop
$keys [$i - 1] [0] = $var
ReDim $keys [$i + 1] [2]
Next
For $i = 0 To UBound ($keys) - 1
$regkey = RegRead ($startkey & "\" & $keys [$i] [0], "zeichenfolgetest")
If @error <> 0 then ExitLoop
If $regkey <> $string Then
$keys [$i] [1] = $regkey
EndIf
Next
_ArrayDisplay ($keys)
[/autoit];-))
Stefan
Super Funktioniert soweit
jetzt zeigt er alle schlüssel an.
Ich wollte alle die nicht ""wert01" sind inklusive schlüssel kannst du mir nochmal kurz helfen?
bin zwar nich ganz im thema aber so könnts funktionieren:
[autoit]#include <array.au3>
[/autoit][autoit][/autoit][autoit]Local $keys [1] [2], $startkey = "HKEY_LOCAL_MACHINE\SOFTWARE\", $string = "wert01"
[/autoit][autoit][/autoit][autoit]For $i= 1 to 100
$var = RegEnumKey($startkey, $i)
If @error <> 0 then ExitLoop
$keys [$i - 1] [0] = $var
ReDim $keys [$i + 1] [2]
Next
For $i = 0 To UBound ($keys) - 1
$regkey = RegRead ($startkey & "\" & $keys [$i] [0], "zeichenfolgetest")
If @error <> 0 then ExitLoop
If $regkey <> $string Then
$keys [$i] [1] = $regkey
EndIf
Next
For $i = ubound($keys) - 1 To 0 Step -1
If $keys[$i][1] = 'wert01' Then _ArrayDelete($keys, $i)
Next
_ArrayDisplay ($keys)
[/autoit]Leider gleiches ergebnis wie zuvor mit der lösung von ojo:
autoit.de/wcf/attachment/6631/
Ich wollte nur die einträge haben wo in Col1 was drinne steht ?
Ich hoffe mit dem bild konnte ich mein Prpoblem besser erklären
Danke
SubZero
Hi,
[autoit]#include <array.au3>
[/autoit][autoit][/autoit][autoit]Local $keys [1] [2], $startkey = "HKEY_LOCAL_MACHINE\SOFTWARE\", $string = "wert01"
[/autoit][autoit][/autoit][autoit]For $i= 1 to 100
$var = RegEnumKey($startkey, $i)
If @error <> 0 then ExitLoop
$keys [$i - 1] [0] = $var
ReDim $keys [$i + 1] [2]
Next
For $i = 0 To UBound ($keys) - 1
$regkey = RegRead ($startkey & "\" & $keys [$i] [0], "zeichenfolgetest")
If @error <> 0 then ExitLoop
If $regkey <> $string Then
$keys [$i] [1] = $regkey
EndIf
Next
_cleararray ($keys)
[/autoit][autoit][/autoit][autoit]_ArrayDisplay ($keys)
[/autoit][autoit][/autoit][autoit]Func _cleararray ($array)
For $i = 0 To UBound ($array) -1
If $array [$i] [1] = "" Then
_ArrayDelete ($array, $i)
ExitLoop
EndIf
Next
_cleararray ($array)
EndFunc
;-))
Stefan
Hey,
kriege die meldung:
(31) : ==> Recursion level has been exceeded - AutoIt will quit to prevent stack overflow.:
???
achso wenn du die leeren rauslöschen willst dann so:
[autoit]#include <array.au3>
[/autoit][autoit][/autoit][autoit]Local $keys [1] [2], $startkey = "HKEY_LOCAL_MACHINE\SOFTWARE\", $string = "wert01"
[/autoit][autoit][/autoit][autoit]For $i= 1 to 100
$var = RegEnumKey($startkey, $i)
If @error <> 0 then ExitLoop
$keys [$i - 1] [0] = $var
ReDim $keys [$i + 1] [2]
Next
For $i = 0 To UBound ($keys) - 1
$regkey = RegRead ($startkey & "\" & $keys [$i] [0], "zeichenfolgetest")
If @error <> 0 then ExitLoop
If $regkey <> $string Then
$keys [$i] [1] = $regkey
EndIf
Next
For $i = ubound($keys) - 1 To 0 Step -1
If StringStripCR($keys[$i][1]) = "" Then _ArrayDelete($keys, $i)
Next
_ArrayDisplay ($keys)
[/autoit]Hi,
dann scheinst Du eine Menge von Keys zu haben. Andere Lösung:
[autoit]#include <array.au3>
[/autoit][autoit][/autoit][autoit]Local $keys [1] [2], $startkey = "HKEY_LOCAL_MACHINE\SOFTWARE\", $string = "wert01"
[/autoit][autoit][/autoit][autoit]For $i= 1 to 100
$var = RegEnumKey($startkey, $i)
If @error <> 0 then ExitLoop
$keys [$i - 1] [0] = $var
ReDim $keys [$i + 1] [2]
Next
For $i = 0 To UBound ($keys) - 1
$regkey = RegRead ($startkey & "\" & $keys [$i] [0], "zeichenfolgetest")
If @error <> 0 then ExitLoop
If $regkey <> $string Then
$keys [$i] [1] = $regkey
EndIf
Next
While 1
$index = _ArraySearch ($keys, "", 0, 0, 0, 0, 0, 1)
If @error Then ExitLoop
_ArrayDelete ($keys, $index)
WEnd
_ArrayDisplay ($keys)
[/autoit];-))
Stefan