| |
|
|
ASKTEC | Hallo zusammen,
wie kann ich unter XProfan prüfen, ob ein Registry-Key vorhanden ist oder nicht? ReadIni bringt ja eine Fehlermeldung, wenn der Key nicht vorhanden ist...
Vielen Dank für Eure Hilfe...
Gruß
Andreas |
|
|
| Profan 7.6 / XProfan 8 / XProfan 9 ~ W2k Prof. / Win XP Prof. ~ AMD XP2000+ / P4 3.80 GHz | 08.12.2005 ▲ |
|
|
|
|
| Als Administrator müßte das immer so gehen: KompilierenMarkierenSeparierenDef @RegOpenKeyEx(5) !"ADVAPI32","RegOpenKeyExA"
Def @RegCloseKey(1) !"ADVAPI32","RegCloseKey"
Declare Oberschlüssel$,Oberschlüssel&,Key$,Vorhanden&
Declare KEY_HANDLE&
Windowstyle 31
Windowtitle "Registryschlüssel vorhanden??"
Window 0,0-640,440
LET Oberschlüssel$=" "
WHILE Oberschlüssel$<>""
LET Oberschlüssel$=@INPUT$("Oberschlüssel eingeben","Existiert Schlüssel?","HKEY_LOKAL_MACHINE")
IF Oberschlüssel$<>""
LET KEY$=@INPUT$("Oberschlüssel eingeben","Existiert Schlüssel?","Software")
IF Oberschlüssel$="HKEY_LOKAL_MACHINE"
LET Oberschlüssel&=$80000002
ElseIF Oberschlüssel$="HKEY_CLASSES_ROOT"
LET Oberschlüssel&=$80000000
ElseIF Oberschlüssel$="HKEY_CURRENT_CONFIG"
LET Oberschlüssel&=$80000005
ElseIF Oberschlüssel$="HKEY_CURRENT_USER"
LET Oberschlüssel&=$80000001
ElseIF Oberschlüssel$="HKEY_USERS"
LET Oberschlüssel&=$80000003
ElseIF Oberschlüssel$="HKEY_DYN_DATA"
LET Oberschlüssel&=$80000006
ElseIF Oberschlüssel$="HKEY_PERFORMANCE_DATA"
LET Oberschlüssel&=$80000004
endif
LET VORHANDEN&=@RegOpenKeyEx(Oberschlüssel&,@ADDR(KEY$),0,$40000,@ADDR(KEY_HANDLE&))
IF VORHANDEN&=0
PRINT "Schlüssel "+Oberschlüssel$+""+Key$+" ist vorhanden!"
@RegCloseKey(KEY_HANDLE&)
elseIF VORHANDEN&=2
PRINT "Schlüssel "+Oberschlüssel$+""+Key$+" ist nicht vorhanden!"
Else
PRINT "Über Schlüssel "+Oberschlüssel$+""+Key$+" kann ich keine Aussage treffen!"
endif
endif
wend
Ich schau aber noch einmal genau nach... |
|
|
| |
|
|
|
| Kleine Fehlerkorrektur (leg mich gleich schlafen) KompilierenMarkierenSeparierenDef @RegOpenKeyEx(5) !"ADVAPI32","RegOpenKeyExA"
Def @RegCloseKey(1) !"ADVAPI32","RegCloseKey"
Declare Oberschlüssel$,Oberschlüssel&,Key$,Vorhanden&
Declare KEY_HANDLE&
Windowstyle 31
Windowtitle "Registryschlüssel vorhanden??"
Window 0,0-640,440
LET Oberschlüssel$=" "
WHILE Oberschlüssel$<>""
LET Oberschlüssel$=@INPUT$("Oberschlüssel eingeben","Existiert Schlüssel?","HKEY_LOKAL_MACHINE")
IF Oberschlüssel$<>""
LET KEY$=@INPUT$("Oberschlüssel eingeben","Existiert Schlüssel?","Software")
IF Oberschlüssel$="HKEY_LOKAL_MACHINE"
LET Oberschlüssel&=$80000002
ElseIF Oberschlüssel$="HKEY_CLASSES_ROOT"
LET Oberschlüssel&=$80000000
ElseIF Oberschlüssel$="HKEY_CURRENT_CONFIG"
LET Oberschlüssel&=$80000005
ElseIF Oberschlüssel$="HKEY_CURRENT_USER"
LET Oberschlüssel&=$80000001
ElseIF Oberschlüssel$="HKEY_USERS"
LET Oberschlüssel&=$80000003
ElseIF Oberschlüssel$="HKEY_DYN_DATA"
LET Oberschlüssel&=$80000006
ElseIF Oberschlüssel$="HKEY_PERFORMANCE_DATA"
LET Oberschlüssel&=$80000004
ELSE
LET Oberschlüssel&=0
endif
LET VORHANDEN&=@RegOpenKeyEx(Oberschlüssel&,@ADDR(KEY$),0,$40000,@ADDR(KEY_HANDLE&))
IF VORHANDEN&=0
PRINT "Schlüssel "+Oberschlüssel$+""+Key$+" ist vorhanden!"
@RegCloseKey(KEY_HANDLE&)
elseIF VORHANDEN&=2
PRINT "Schlüssel "+Oberschlüssel$+""+Key$+" ist nicht vorhanden!"
Elseif VORHANDEN&=6
PRINT "Schlüssel "+Oberschlüssel$+""+Key$+" ist nicht vorhanden!"
Elseif VORHANDEN&=1010
PRINT "Schlüssel "+Oberschlüssel$+""+Key$+" ist nicht vorhanden!"
elseif VORHANDEN&=5
PRINT "Schlüssel "+Oberschlüssel$+""+Key$+" ist vorhanden!"
else
PRINT "Über Schlüssel "+Oberschlüssel$+""+Key$+" kann ich keine Aussage treffen!",VORHANDEN&
endif
endif
wend
|
|
|
| |
|
|