Por lo que hace al registro te recomiendo directamente vbs...busca info sobre RegWrite,RegDelete y RegRead.
Por lo que hace buscar ficheros lo puedes hacer en vbs..busca info sobre fileexists... Aunque tmb lo puedes hacer con la api..a continuacion te dejo un ejemplo para que te lo mires.
Código:
'Tipos, constantes y funciones para FileExist
Const MAX_PATH = 260
Const INVALID_HANDLE_VALUE = -1
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" _
(ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long
Public Function FileExist(ByVal sFile As String) As Boolean
'comprobar si existe este fichero
Dim WFD As WIN32_FIND_DATA
Dim hFindFile As Long
hFindFile = FindFirstFile(sFile, WFD)
'Si no se ha encontrado
If hFindFile = INVALID_HANDLE_VALUE Then
FileExist = False
Else
FileExist = True
'Cerrar el handle de FindFirst
hFindFile = FindClose(hFindFile)
End If
End Function
'Para usarla:
If FileExist("lo que quieras comprobar") Then
'El archivo existe
Else
'El archivo no existe
End If