Aparte de eso puede lanzarte otras Exceptions, como ObjectDisposedException o SecurityException, entonces para esos casos puedes hacer:
Try
Dim key As String
key = "SYSTEM\CurrentControlSet\Control\Network\" & s & resultado
Dim res As RegistryKey = Registry.LocalMachine.OpenSubKey(key, False)
If(res is nothing) then
return New Exception("La clave "& key &" no existe")
End If
Dim ase As String
For Each ase In res.GetValueNames() <---- aki da el error
MsgBox(ase)
Next ase
Catch disposedex As ObjectDisposedException
Código en caso de que pase ésto
Catch secEx as SecurityException
Código en caso de que pase ésto
End Try
Perdona si tengo algún error, no me sé muy bien la sintaxis de VB.Net
Saludos!