(view source code of reg2vbs.vbs as plain text)
'Reg2Vbs v1.5a'Original Reg2Vbs v1.0 coded by Tim Mortimer'Enhanced Reg2Vbs v1.51 by Denis St-Pierre (Ottawa, Canada)'License: Public Domain''Purpose: converts ALL reg files in current directory to VBS in one shot!'OS: works in 2k and up'Liability: Use at your own risk!''v1.5 features:'Handles REG_SZ, REG_DWORD, BINARY (U/A), MULTI-SZ, EXPAND_SZ and Default values (lines that start with @= )'Handles Comments (lines that start with ;)'Handles Comments at end of DWORD lines'Handles values and data containing Chr(34), if encountered Chr(34) will be removed or processed (Default,REG_SZ) to prevent corrupt output file'Adds blank line after each BINARY, MULTI-SZ, and EXPAND_SZ blocks (easier to read vbs)'Handles deletion of keys or values using the "-" identifier'UNsupported values are commented into VBS file'v1.5 Limitations:'Cannot handle comments at end of MULTI-SZ, BINARY and EXPAND_SZ lines (never will)'Cannot handle @="\"c:\blabla\"" default values for some reason'Cannot handle Hex values that end without ",00" or ",00,00"'Cannot handle Key names containing Chr(34) NOTE: Key names with " are valid (see paper sizes in registry)'CAVEAT:last line in REG file needs to be blank or else last line is ignored''v1.0 Limitations:'1 - Only HKEY_CLASSES_ROOT, HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE root keys are supported'2 - Only REG_SZ and REG_DWORD values are supported'3 - Keys, values and data containing Chr(34) are not supported and, if encountered, will cause corrupt output file'4 - Deletion of keys or values using the "-" identifier is not supported'5 - Comments are not handledOption Explicit'Constant declarationsConst sDelim = "|"
Const ForReading = 1
Const TristateUseDefault = -2
const HKEY_LOCAL_MACHINE = &H80000002
'Global declarationsDim FSO, g_KEY, g_Err, g_CurrentFile, g_long_HKEYSet FSO = CreateObject("Scripting.FileSystemObject") 'Initialize the file system object
Dim sFilesDim nFilesDim i, bDoingMultiSZ, bUsingStdRegProv, strMultiValue, MultiValueDim bDoingBINARY, strBINARYValue,bDoingUnicode, strEXPANDSZValue, bDoingEXPANDSZ'Add key - Set global key valuesDim l_HKEY, l_LenHKEY, l_SubKeyDim g_Valueg_Err = "" 'Initialize global error object
'setting default valuesbDoingBINARY=False
strBINARYValue=False
bDoingUnicode=False
'Get a list of reg files in the current directory and sort into an arraysFiles = Split(GetRegFiles, sDelim)
'Get number of filesnFiles = UBound(sFiles) - 1
'Loop through all filesFor i = 0 To nFiles
'Set global current fileg_CurrentFile = sFiles(i)
MsgBox "Openning "&g_CurrentFile
'Convert the fileIf (Not ConvertFile(g_CurrentFile)) Then
MsgBox "An error occurred while converting the file: " & sFiles(i), vbCritical, "Error - reg2vbs"
End If
Next'create log fileIf Len(g_Err) > 0 Then
MsgBox "Errors where encountered while converting the files. Check error.log for details", vbCritical, "Conversion Completed - Errors"
Dim hErrFileSet hErrFile = FSO.CreateTextFile("error.log", True)
PrependLine g_Err, "Created: " & Now
PrependLine g_Err, "Reg2Vbs v1.5 Error Log" PrependLine g_Err, "<-------------------- START ERROR LOG -------------------->" AppendLine g_Err, "<--------------------- END ERROR LOG --------------------->"hErrFile.Write g_Err
hErrFile.Close
Set hErrFile = Nothing
End If
MsgBox "All .reg files have been converted"'Free thefile system objectSet FSO = Nothing
WScript.Quit
' ======================================================================================================' ======================================================================================================'' FUNCTIONS Used'' ======================================================================================================' ======================================================================================================'Function IsRegFile(sFile) 'Checks for valid file extension' IsRegFile = (LCase(FSO.GetExtensionName(sFile)) = "reg")'End FunctionFunction GetRegFiles()
'Find all *.reg files in the current directory Dim oDir Dim oFile Dim oFiles Dim sCurrentDir Dim sResult 'Get current directorysCurrentDir = Left(WScript.ScriptFullName, Len(WScript.ScriptFullName) - Len(WScript.ScriptName))
'Obtain handle to directorySet oDir = FSO.GetFolder(sCurrentDir)
'Retrieve list of files in current directorySet oFiles = oDir.Files
For Each oFile In oFiles
'Check for valid extensionIf LCase(FSO.GetExtensionName(oFile.Name)) = "reg" Then 'Checks for valid file extension
'Add reg filename to resultsResult = sResult & oFile.Path & sDelim
End If
Next 'Assign function return value GetRegFiles = sResultEnd Function
Function IsValidRegFile(sFirstLine)
'Checks for valid registry file Dim ResultSelect Case sFirstLine
Case "Windows Registry Editor Version 5.00"
'Windows 2000, XPResult = True
Case "REGEDIT4"
'Windows 95, 98 MEResult = True
Case Else
'Unknown registry file formatResult = False
End Select
IsValidRegFile = ResultEnd Function
Function ConvertFile(sFile)
'Converts the registry file to a vbscript file Dim hRegFile Dim hVBSFile Dim sRegFile Dim sVBSFile Dim sVBSBuffer 'Initialize the buffersVBSBuffer = ""
'Open the file as for reading in default system format (ANSI or Unicode)Set hRegFile = FSO.OpenTextFile(sFile, ForReading, False, TristateUseDefault)
'Read the file contents into the buffersRegFile = hRegFile.ReadAll
'Split the buffer into an vbCrLf delimitered arraysRegFile = Split(sRegFile, vbCrLf)
If IsValidRegFile(sRegFile(0)) Then 'if reg file is valid continue
'Create initial vbs code AppendLine sVBSBuffer, "'VBScript Registry File created with Reg2VBS v1.5" AppendLine sVBSBuffer, "'v1.0 Coded by Tim Mortimer" AppendLine sVBSBuffer, "'v1.5 Coded by Denis St-Pierre (ottawa, Canada)"AppendLine sVBSBuffer, "'Creation time: " & Now
AppendLine sVBSBuffer, "Option Explicit" AppendLine sVBSBuffer, "Dim objShell"AppendLine sVBSBuffer, "Set objShell = CreateObject(""WScript.Shell"")"
'AppendLine sVBSBuffer, "" 'Add StdRegProv support in case of Binary, Multi_SZ values AppendLine sVBSBuffer, "" AppendLine sVBSBuffer, "'Add StdRegProv support in case of Binary, Multi_SZ values" AppendLine sVBSBuffer, "Dim strComputer, ArrOfValue, oReg" AppendLine sVBSBuffer, "const HKEY_USERS = &H80000003" AppendLine sVBSBuffer, "const HKEY_LOCAL_MACHINE = &H80000002" AppendLine sVBSBuffer, "const HKEY_CURRENT_USER = &H80000001" AppendLine sVBSBuffer, "const HKEY_CLASSES_ROOT = &H80000000"AppendLine sVBSBuffer, "strComputer = ""."""
AppendLine sVBSBuffer, "Set oReg=GetObject(""winmgmts:{impersonationLevel=impersonate}!\\"" & strComputer & ""\root\default:StdRegProv"") 'used for Binary, Multi_SZ values"
Dim sVBSLine Dim iFor i = 1 to ubound(sRegFile) - 1 'Start at line 1 to avoid the header
'Check for blank linesIf Len(Trim(sRegFile(i))) > 0 Then
sVBSLine = ConvertLine(sRegFile(i)) 'Convert registry line into vbscript equivalent
AppendLine sVBSBuffer, sVBSLine 'Add converted line to sVBSBuffer Else 'Blank line. Do nothing.End If
Next 'Create the vbs filenamesVBSFile = Left(sFile, Len(sFile) - 3) & "vbs"
'Add trailing code AppendLine sVBSBuffer, "Set objShell = Nothing" AppendLine sVBSBuffer, "WScript.Quit" 'Write the fileSet hVBSFile = FSO.CreateTextFile(sVBSFile, True)
hVBSFile.Write sVBSBuffer
hVBSFile.Close
Set hVBSFile = Nothing
ConvertFile = True 'Return true
Else 'Not a valid registry file 'Add error to listAddError "Invalid registry file: " & sFile
ConvertFile = False 'Return false
End If
hRegFile.Close 'Close the registry file
Set hRegFile = Nothing
End Function
Function GetHKEYValue(sHKEY)
'Translates the HKEY value to RegWrite compatible oneSelect Case sHKEY
Case "HKEY_CLASSES_ROOT": GetHKEYValue = "HKCR"
Case "HKEY_CURRENT_USER": GetHKEYValue = "HKCU"
Case "HKEY_LOCAL_MACHINE": GetHKEYValue = "HKLM"
Case Else
AddError "Unknown HKEY value: " & sHKEY
GetHKEYValue = "Unknown HKEY value"
End Select
End Function
Function ConvertLine(sRegLine) 'Converts a registry file line into the vbscript equivalent
Dim sLine, ResultsLine = Trim(sRegLine) 'Remove spaces at begin and end of line
If Len(sLine) = 0 Then
MsgBox "ConvertLine - Len(sRegLine) = 0 - Shouldn't be here", vbCritical 'Do nothing - blank lineElseIf Left(sLine, 1) = ";" Then '*** ; comment *****
Result="'"&Mid(sLine, 2, Len(sLine))
ElseIf Left(sLine, 2) = "@=" Then ' *** @= Default Value****
Dim l_datad l_datad=Right(sLine,Len(sLine)-2)
if Len(l_datad) >2 then 'if not blank, check for chr(34) in data
Dim l_datadRAWl_datadRAW=Mid(l_datad,2,len(l_datad)-2) 'Remove chr(34) at beginning and end of string
If Instr(1, l_datadRAW, chr(34), vbTextCompare)>0 then 'if contains " ==> chr(34)
l_datadRAW=Replace(l_datadRAW, """", """""")
' l_datadRAW=Replace(l_datadRAW, "\""", "\""""") ' to try to handle "\"c:\blabla\"" => NFG!!!l_datadRAW=Replace(l_datadRAW, "\"&chr(34), "\"&chr(34)&chr(34)) ' to try to handle "\"c:\blabla\"" => NFG!!!
' AddError "value data contained "" Now fixed. was: " & sLinel_datad=""""&l_datadRAW&"""" 'Add chr(34) back at beginning and end of string
End if
End if
Result = "objShell.RegWrite """ & g_Key & "\" & "" & """, " & Right(sLine,Len(sLine)-2) & ", " & Chr(34) & "REG_SZ" & Chr(34)&" 'Default value"
ElseIf Left(sLine, 2) = "[-" Then '*** Delete KEY (starts with [- ) *****
'Extract HKEY value and convert it to be vbscript' RegWrite compatible 'NOTE: Key names with " are valid (see paper sizes in registry)l_HKEY = Mid(sLine, 2, Instr(sLine, "\") - 2)
l_HKEY=Replace(l_HKEY, "-", "") 'remove - to process
l_LenHKEY = Len(l_HKEY)
l_HKEY = GetHKEYValue(l_HKEY)
l_Subkey = Mid(sLine, l_LenHKey + 3, Len(sLine) - l_LenHKEY - 3) 'Extract subkey data
g_Key = l_HKEY & "\" & l_SubKey 'Reconstruct new key data
'check for " in key name (Sanity check)' If Instr(1, g_Key, chr(34), vbTextCompare)>0 then 'if contains " ==> invalid Keyname!' msgbox g_Key&" contains "" which is invalid."&vbcrlf&"it is being removed to proceed"' g_Key=Replace(g_Key, """", "")' AddError "Key name is invalid=> fixed. was: " & sLine' End if 'Create the keyResult = "objShell.RegDelete """&g_Key&"\"&""""
ElseIf Left(sLine, 1) = "[" Then '*** KEY (starts with [ ) *****
'Extract HKEY value and convert it to be vbscript' RegWrite compatible 'NOTE: Key names with " are valid (see paper sizes in registry)l_HKEY = Mid(sLine, 2, Instr(sLine, "\") - 2)
' msgbox "g_long_HKEY="&g_long_HKEYg_long_HKEY=l_HKEY 'Needed for WMI's StdRegProv Class
l_LenHKEY = Len(l_HKEY)
l_HKEY = GetHKEYValue(l_HKEY)
l_Subkey = Mid(sLine, l_LenHKey + 3, Len(sLine) - l_LenHKEY - 3) 'Extract subkey data
g_Key = l_HKEY & "\" & l_SubKey 'Reconstruct new key data
'check for " in key name (Sanity check)' If Instr(1, g_Key, chr(34), vbTextCompare)>0 then 'if contains " ==> invalid Keyname!' msgbox g_Key&" contains "" which is invalid."&vbcrlf&"it is being removed to proceed"' g_Key=Replace(g_Key, """", "")' AddError "Key name is invalid=> fixed. was: " & sLine' End if 'Create the keyResult = "objShell.RegWrite """ & g_Key & "\"", """""
ElseIf LCase(right(sLine, 2)) = ",\" AND bDoingMultiSZ=TRUE Then ' *** Multi-SZ **** Middle of MultiSZ Value statement
strMultiValue=sLine 'convert ,\ to ,_ (sneaky way to process reg one line at a time)strMultiValue="&H"&Replace(strMultiValue, ",\", ",_")
'convert Hex values to &H hex valuesstrMultiValue=Replace(strMultiValue, ",", ",&H")
strMultiValue=Replace(strMultiValue, ",&H_", ",_") 'Fix the ends
Result = strMultiValueElseIf LCase(right(sLine, 5)) = "00,00" AND bDoingMultiSZ=TRUE Then ' *** Multi-SZ **** End of MultiSZ Value statement
bDoingMultiSZ=False 'Were done with *this* multi line statement, setting up for next
bDoingUnicode=False
strMultiValue=sLine 'convert Hex values to &H hex valuesstrMultiValue="&H"&Replace(strMultiValue, ",", ",&H")
' strMultiValue=Replace(strMultiValue, ",&H_", ",_") 'Fix the endsResult = strMultiValue &")"
' oReg.SetMultiStringValue HKEY_LOCAL_MACHINE,strKeyPath,strMultiValue,iValuesResult = Result&vbCRLF&"oReg.SetMultiStringValue "&g_long_HKEY&", """&l_Subkey&""", """&g_Value&""", ArrOfValue"&vbCRLF
ElseIf LCase(right(sLine, 2)) = ",\" AND bDoingBINARY=TRUE Then ' *** BINARY **** Middle of BINARY Value statement
strBINARYValue=sLine 'convert ,\ to ,_ (sneaky way to process reg one line at a time)strBINARYValue="&H"&Replace(strBINARYValue, ",\", ",_")
'convert Hex values to &H hex valuesstrBINARYValue=Replace(strBINARYValue, ",", ",&H")
strBINARYValue=Replace(strBINARYValue, ",&H_", ",_") 'Fix the ends
Result = strBINARYValueElseIf LCase(right(sLine, 5)) = "00,00" AND bDoingBINARY=TRUE AND bDoingUnicode=TRUE Then ' *** BINARY **** End of BINARY Value statement (unicode)
bDoingBINARY=False 'Were done with *this* BINARY line statement, setting up for next
bDoingUnicode=False
strBINARYValue=sLine 'convert Hex values to &H hex valuesstrBINARYValue="&H"&Replace(strBINARYValue, ",", ",&H")
' strBINARYValue=Replace(strBINARYValue, ",&H_", ",_") 'Fix the endsResult = strBINARYValue &")"
' oReg.SetBinaryValue HKEY_LOCAL_MACHINE,strKeyPath,BinaryValueName,iValuesResult = Result&vbCRLF&"oReg.SetBinaryValue "&g_long_HKEY&", """&l_Subkey&""", """&g_Value&""", ArrOfValue"&vbCRLF
ElseIf LCase(right(sLine, 3)) = ",00" AND bDoingBINARY=TRUE AND bDoingUnicode=False Then ' *** BINARY **** End of BINARY Value statement (ASCII)
bDoingBINARY=False 'Were done with *this* BINARY line statement, setting up for next
bDoingUnicode=False
strBINARYValue=sLine 'convert Hex values to &H hex valuesstrBINARYValue="&H"&Replace(strBINARYValue, ",", ",&H")
' strBINARYValue=Replace(strBINARYValue, ",&H_", ",_") 'Fix the endsResult = strBINARYValue &")"
' oReg.SetBinaryValue HKEY_LOCAL_MACHINE,strKeyPath,BinaryValueName,iValuesResult = Result&vbCRLF&"oReg.SetBinaryValue "&g_long_HKEY&", """&l_Subkey&""", """&g_Value&""", ArrOfValue"&vbCRLF
ElseIf LCase(right(sLine, 2)) = ",\" AND bDoingEXPANDSZ=TRUE Then ' *** EXPAND_SZ **** Middle of EXPAND_SZ Value statement
strEXPANDSZValue=sLine 'convert ,\ to ,_ (sneaky way to process reg one line at a time)strEXPANDSZValue="&H"&Replace(strEXPANDSZValue, ",\", ",_")
'convert Hex values to &H hex valuesstrEXPANDSZValue=Replace(strEXPANDSZValue, ",", ",&H")
strEXPANDSZValue=Replace(strEXPANDSZValue, ",&H_", ",_") 'Fix the ends
Result = strEXPANDSZValueElseIf LCase(right(sLine, 5)) = "00,00" AND bDoingEXPANDSZ=TRUE AND bDoingUnicode=TRUE Then ' *** EXPAND_SZ **** End of EXPAND_SZ Value statement (unicode)
bDoingEXPANDSZ=False 'Were done with *this* EXPAND_SZ line statement, setting up for next
bDoingUnicode=False
strEXPANDSZValue=sLine 'convert Hex values to &H hex valuesstrEXPANDSZValue="&H"&Replace(strEXPANDSZValue, ",", ",&H")
' strEXPANDSZValue=Replace(strEXPANDSZValue, ",&H_", ",_") 'Fix the endsResult = strEXPANDSZValue &")"
' oReg.SetExpandedStringValue HKEY_LOCAL_MACHINE,strKeyPath,strEXPANDSZValue,iValuesResult = Result&vbCRLF&"oReg.SetExpandedStringValue "&g_long_HKEY&", """&l_Subkey&""", """&g_Value&""", ArrOfValue"&vbCRLF
ElseIf Left(sLine, 1) = Chr(34) Then '*** Start of Value (line starts with " ) *****
'Add Value' Dim l_Value 'Now g_value Dim l_Data Dim l_Comment 'Extract value and data from sRegLineg_Value = Mid(sLine, 2, Instr(sLine, "=") - 3)
l_Data = Right(sLine, Len(sLine) - Len(g_Value) - 3)
l_Comment=""
If Instr(1, g_Value, chr(34), vbTextCompare)>0 then 'if Value name contains " ==> remove it
msgbox "Value name "&g_Value&" contains "" and will now be removed"
g_Value=Replace(g_Value, """", "")
' AddError "value name contained chr(34) "" Now fixed. was: " & sLineEnd if
'Check what type of data we are convertingIf Left(l_Data, 1) = Chr(34) Then ' *** STRING Value (starts with " )****
if Len(l_Data) >2 then 'if not blank
Dim l_dataRAWl_dataRAW=Mid(l_Data,2,len(l_Data)-2) 'Remove chr(34) at beginning and end of string
If Instr(1, l_dataRAW, chr(34), vbTextCompare)>0 then 'if contains " ==> chr(34)
'msgbox l_dataRAW&" contains "" being fixed to proceed"l_dataRAW=Replace(l_dataRAW, """", """""")
' AddError "value data contained "" Now fixed. was: " & sLinel_data=""""&l_dataRAW&"""" 'Add chr(34) back at beginning and end of string
End if
End if
Result = "objShell.RegWrite """ & g_Key & "\" & g_Value & """, " & l_Data & ", " & Chr(34) & "REG_SZ" & Chr(34)
ElseIf Left(l_Data, 1) = "-" Then ' *** Delete Value (starts with - )****
Result = "objShell.RegDelete """ & g_Key & "\" & g_Value &""" 'Delete value"
ElseIf LCase(Left(l_Data, 5)) = "dword" Then ' *** DWORD Value****
If Instr(1, l_Data, ";", vbTextCompare)>0 then 'if contains ; ==> Comment
l_Comment = " '"&Mid(l_Data, Instr(1,l_Data, ";", vbTextCompare)+1 ) ' Comment is ;(+1) to end of line
l_Data = Trim(Mid(l_Data, 1,Instr(1,l_Data, ";", vbTextCompare)-1)) ' Data is start to ;
End if
l_Data = Right(l_Data, Len(l_Data) - 6)
Result = "objShell.RegWrite """ & g_Key & "\" & g_Value & """, " & HexToDec(l_Data) & ", " & Chr(34) & "REG_DWORD" & Chr(34)&l_Comment
ElseIf LCase(Left(l_Data, 7)) = "hex(7):" Then ' *** Multi-SZ Value (Start) ****
strMultiValue=(right(l_Data, len(l_Data)-7)) 'Get the values
'convert ,\ to ,_ (sneaky way to process one line at a time)strMultiValue=Replace(strMultiValue, ",\", ",_")
'convert Hex values to &H hex values' iValues = Array(&H01,&Ha2,&H10)strMultiValue="&H"&Replace(strMultiValue, ",", ",&H")
strMultiValue=Replace(strMultiValue, ",&H_", ",_") 'Fix the ends
Result="ArrOfValue = Array("&strMultiValue&" 'Building array for handling Multi-SZ Value" 'convert values into an array but don't the statement yet! (use _ )
bDoingMultiSZ=TRUE '
bUsingStdRegProv=TRUE
If LCase(right(l_Data, 5)) = "00,00" then 'if the end of the line is "00,00" => end Statement
' oReg.SetMultiStringValue HKEY_LOCAL_MACHINE,strKeyPath, MultiValueName,iValuesResult = Result&vbCRLF&"oReg.SetMultiStringValue "&g_long_HKEY&", """&l_Subkey&""", """&g_Value&""", ArrOfValue"
End if
ElseIf LCase(Left(l_Data, 8)) = "hex(03):" OR LCase(Left(l_Data, 4)) = "hex:" Then ' *** BINARY Value (start) ****
If LCase(Left(l_Data, 8)) = "hex(03):" then
strBINARYValue=(right(l_Data, len(l_Data)-8)) 'Get the Unicode values
bDoingUnicode=True
ElsestrBINARYValue=(right(l_Data, len(l_Data)-4)) 'Get the ASCII values
bDoingUnicode=False 'just in case
End if
'convert ,\ to ,_ (sneaky way to process one line at a time)strBINARYValue=Replace(strBINARYValue, ",\", ",_")
'convert Hex values to &H hex values' iValues = Array(&H01,&Ha2,&H10)strBINARYValue="&H"&Replace(strBINARYValue, ",", ",&H")
strBINARYValue=Replace(strBINARYValue, ",&H_", ",_") 'Fix the ends
Result="ArrOfValue = Array("&strBINARYValue&" 'Building array for handling BINARY Value" 'convert values into an array but don't finish the statement yet! (use _ )
bDoingBINARY=TRUE '
bUsingStdRegProv=TRUE
If LCase(right(l_Data, 5)) = "00,00" then 'if the end of the line is "00,00" => end Statement
' oReg.SetBinaryValue HKEY_LOCAL_MACHINE,strKeyPath,BinaryValueName,iValuesResult = Result&vbCRLF&"oReg.SetBinaryValue "&g_long_HKEY&", """&l_Subkey&""", """&g_Value&""", ArrOfValue"
End if
ElseIf LCase(Left(l_Data, 7)) = "hex(2):" Then ' *** EXPAND_SZ Value (start) ****
' If LCase(Left(l_Data, 7)) = "hex(2):" then strEXPANDSZValue=(right(l_Data, len(l_Data)-7)) 'Get the Unicode values
bDoingUnicode=True
' Else' strEXPANDSZValue=(right(l_Data, len(l_Data)-4)) 'Get the ASCII values' bDoingUnicode=False 'just in case' End if 'convert ,\ to ,_ (sneaky way to process one line at a time)strEXPANDSZValue=Replace(strEXPANDSZValue, ",\", ",_")
'convert Hex values to &H hex values' iValues = Array(&H01,&Ha2,&H10)strEXPANDSZValue="&H"&Replace(strEXPANDSZValue, ",", ",&H")
strEXPANDSZValue=Replace(strEXPANDSZValue, ",&H_", ",_") 'Fix the ends
Result="ArrOfValue = Array("&strEXPANDSZValue&" 'Building array for handling EXPAND_SZ Value" 'convert values into an array but don't finish the statement yet! (use _ )
bDoingEXPANDSZ=TRUE '
bUsingStdRegProv=TRUE
If LCase(right(l_Data, 5)) = "00,00" then 'if the end of the line is "00,00" => end Statement
' oReg.SetBinaryValue HKEY_LOCAL_MACHINE,strKeyPath,strEXPANDSZValue,iValuesResult = Result&vbCRLF&"oReg.SetExpandedStringValue "&g_long_HKEY&", """&l_Subkey&""", """&g_Value&""", ArrOfValue"
End if
Else '*** Unknown value type
AddError "Unknown registry value type: " & sLine
Result = "'Unknown value type" & sLine
End If
Else 'Unknown registry line valueAddError "Unknown registry line value: " & sRegLine
Result = "'Unknown registry line Value" & sRegLine
End If
ConvertLine = ResultEnd Function
Function HexToDec(sHex)
'Converts a hexadecimal string into a decimal' dim strNoKeyError' On Error Resume Next 'Disable error checkingHexToDec = CStr(CLng("&H" & sHex))
' strNoKeyError = Err.Description' If NOT strNoKeyError="" then' msgbox "error description="&strNoKeyError&vbcrlf&sRegLine' End if' Err.Clear' On Error Goto 0 're-enable error checkingEnd Function
Sub AddError(sError)
AppendLine g_Err, "[" & g_CurrentFile & "] - " & sError
End Sub
Sub AppendStr(sVar, sStr)
'Appends sStr to sVar. Just cleaner than appending with "&" all the timesVar = sVar & sStr
End Sub
Sub AppendLine(sVar, sStr)
'Appends sStr to sVar and adds a vbCrLf AppendStr sVar, sStr & vbCrLfEnd Sub
Sub PrependStr(sVar, sStr)
'Prepends sStr to sVar. Just cleaner than appending with "&" all the timesVar = sStr & sVar
End Sub
Sub PrependLine(sVar, sStr)
'Prepends sStr to sVar and adds a vbCrLf PrependStr sVar, sStr & vbCrLfEnd Sub
page last modified: 2025-10-11; loaded in 0.0210 seconds