Savoir si un fichier est un executable Windows

Contenu du snippet

Const PESIGNATURE = &H4550&
Const MZSIGNATURE = &H5A4D&

Public Function IsPE(ByVal StrFileName As String) As Boolean
    On Error GoTo Xe
    Dim rMZ   As Integer
    Dim rOfs  As Long
    Dim rFree As Long
    Dim rPE   As Long
    rFree = FreeFile
    Open StrFileName For Input As #rFree: Close #rFree
    Open StrFileName For Binary Access Read As #rFree
    Get #rFree, , rMZ
    If (rMZ = MZSIGNATURE) Then
        Get #rFree, 61, rOfs
        If (rOfs > 61) And (rOfs < LOF(rFree)) Then
            Get #rFree, 1 + rOfs, rPE
            IsPE = (rPE = PESIGNATURE)
        End If
    End If
    Close #rFree
Xi: Exit Function
Xe: 'MsgBox Err.Description, vbCritical
    Resume Xi
End Function



Compatibilité : VB6, VBA

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.