| |
|
|
Jac de Lad | Hat jemand vielleicht einen Quelltext rumliegen, der in der Registry in allen Schlüsseln nach einer Zeichenaequenz sucht? Ich kenne die APIs und weiß wie ich es tun würde, aber bevor ich mir die ganze Arbeit mache, wollte ich mal nachfragen, ob jemand vielleicht schon was da hat, da könnte ich mir die Mühe sparen.
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 05.11.2008 ▲ |
|
|
|
|
Jac de Lad | Ich antworte mir mal selbst, vielleicht braucht das jemand noch. Die Proc sucht im angegebenen Schlüssel und allen Unterschlüsseln nach Einträgen, die dem angegebenen String entsprechen und gibt die Schlüssel zurück. KompilierenMarkierenSeparierenEnumerator
mkey%=Hauptschlüssel:
HKEY_CLASSES_ROOT=0
HKEY_CURRENT_USER=1
HKEY_LOCAL_MACHINE=2
HKEY_USERS=3
HKEY_PERFORMANCE_DATA=4
HKEY_CURRENT_CONFIG=5
key$=Startschlüssel ("" für Hauptschlüssel)
s$=zu suchender String
proc Enumerator
Parameters Mkey%,key$,s$
declare error&,handle&,zaehler%,Ergebnis#,b#,e#,typ#,Name#,Inhalt#,handle#
Dim Ergebnis#,255
dim b#,1000
dim e#,1000
dim Typ#,1
dim Name#,102
dim Inhalt#,102
dim Handle#,4
Error&=Regopenkeyex($80000000+mkey%,Addr(Key$),0,$F003f,Addr(Handle&))
Whilenot Error&
Error&=Regenumkey(Handle&,Zaehler%,Ergebnis#,100)
ifnot Error&
Enumerator mkey%,key$+If(key$="","","\")+String$(Ergebnis#,0)
endif
Inc Zaehler%
Endwhile
RegOpenKeyEx($80000000+mkey%,Addr(key$),0,1,Handle#)
Clear zaehler%,error&
whilenot error&
Long b#,0=100
Long e#,0=100
error&=RegEnumValue(Long(Handle#,0),Zaehler%,Name#,b#,0,Typ#,Inhalt#,e#)
if Byte(Typ#,0)=1
case s$=Lower$(string$(Inhalt#,0)):AddString SubStr$("HKCR,HKCU,HKLM,HKU,HKPD,HKCC",mkey%+1,",")+" , "+key$+If(key$="","","\")+String$(Ergebnis#,0)+" , "+If(string$(Name#,0)="","(Standard)",string$(Name#,0))+" = "+string$(Inhalt#,0)
endif
Inc zaehler%
endwhile
RegCloseKey(Long(Handle#,0))
dispose Handle#
dispose Name#
dispose b#
dispose Typ#
dispose Inhalt#
dispose e#
Regclosekey(Handle&)
Dispose Ergebnis#
endproc
Ist noch verbesserbar bzw. abwandelbar für andere Zwecke. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 07.11.2008 ▲ |
|
|
|