Hi,
Ich habe Win 7 64bit.
ich will einen bestimmten Regeintrag auslesen.
Dazu verwende ich BugFixs Funktion
Spoiler anzeigen
#include <Array.au3>
#include <RegFunc.au3>
$reg_schluessel100 = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages"
$subkeys = _GetRegSubKeys2($reg_schluessel100)
[/autoit] [autoit][/autoit] [autoit];~ sleep(3000)
_ArrayDisplay($subkeys)
Func _GetRegSubKeys2($HKEY)
If StringInStr($HKEY, '\') Then
If StringRight($HKEY, 1) = '\' Then
$HKEY = StringTrimRight($HKEY, 1)
Local $strKeyPath = ''
Else
Local $strKeyPath = StringRight($HKEY, StringLen($HKEY)-StringInStr($HKEY, '\') )
$HKEY = StringLeft($HKEY, StringInStr($HKEY, '\')-1)
EndIf
Else
Local $strKeyPath = ''
EndIf
Select
Case $HKEY = "HKEY_LOCAL_MACHINE" Or $HKEY = "HKLM"
$HKEY = 0x80000002
Case $HKEY = "HKEY_USERS" Or $HKEY = "HKU"
$HKEY = 0x80000003
Case $HKEY = "HKEY_CURRENT_USER" Or $HKEY = "HKCU"
$HKEY = 0x80000001
Case $HKEY = "HKEY_CLASSES_ROOT" Or $HKEY = "HKCR"
$HKEY = 0x80000000
Case $HKEY = "HKEY_CURRENT_CONFIG" Or $HKEY = "HKCC"
$HKEY = 0x80000005
EndSelect
Local $arrSubKeys = '', $subkey
Local $oReg = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
$oReg.EnumKey ($HKEY, $strKeyPath, $arrSubKeys)
Return $arrSubKeys
;~ _ArrayDisplay($arrSubKeys)
;~ MsgBox(0,0,$arrSubKeys)
EndFunc ;==>_GetRegSubKeys
Kompiliere ich das Skript unter 64bit bekomme ich ein Array zurück.
Kompiliere ich es unter 32bit bekomme ich keines zurück.
Kann dies bitte mal noch einer testen.
Was müsste man ändern, dass es auch 32bit kompiliert und 64bit läuft?