Aqui una pequeña funcion para determinar si un archivo es binario o de texto. Dicho codigo funciona en todos los casos que he probado, tanto con archivos ejecutables (EXE, DLL, OCX, etc...) como documentos (BMP, CHM, formatos propios de proyectos mios). Si un archivo es de texto plano (un TXT comun)lo diferencia de un archivobinario:
Código:
'NOTAS
'*************************************************
'* La función se escribio para VB 4.0 o superior
'* Access Read da mayor velocidad a la lectura.
'* Espera que el archivo exista y su ruta sea correcta
'* La verificación del carácter Eod (26) tiene inconvenientes. Se debe abrir el archivo como
' secuencial, lo cual no es viable por desconocer el formato del archivo, a parte de que los
' archivo grandes pueden generar problemas. Personalmente intente verificando el carácter 26,
' apertura binaria, y el procedimiento fallo en varios archivos.
'* Si se va a trabajar con archivos de texto grandes es conveniente colocar el Hourglass y un
' mensaje de espera
'*************************************************
'
'ATENCION!!!
' Cabe destacar que el archivo a validar ha de existir,
' de no ser así, el valor obtenido será "Falso", es decir,
' que nos podrá confundir y pensar que es un fichero de
' texto, cuando en realidad dicho fichero no existe.
'
Public Function IsBinaryFile(File As String) As Boolean
 Const aLf = 10, aCR = 13, aSP = 32
 Const MaxRead = 65536
 Dim ff As Integer
 Dim s As Integer
 Dim i As Long
 Dim n As Long
 Dim Rtn As Boolean

 On Error GoTo IsBinaryFile_Err
 ff = FreeFile

 Open File For Binary Access Read As #ff
 n = IIf(LOF(ff) > MaxRead, MaxRead - 1, LOF(ff))
 Do
 i = i + 1
 If i >= n Then
 IsBinaryFile = False
 Rtn = True

 Else
 s = Asc(Input$(1, #ff))
 If s < aSP Then
 If s = aCR Or s = aLf Then

 Else
 IsBinaryFile = True
 Rtn = True

 End If

 End If

 End If

 Loop Until Rtn

 Close ff

 Exit Function

IsBinaryFile_Err:
 If ff Then Close ff

 MsgBox "Errorverificando archivo" & File & vbCrLf & Err.Description

End Function
Salu2...