Uses Winapi.Windows, JwaSoftpub, CAPICOM_TLB, JwaWintrust;
Function IsCodeSigned(const Filename:String):Boolean;
var
FileInfo :TWinTrustFileInfo;
TrustData :TWinTrustData;
begin
ZeroMemory(@FileInfo, SizeOf(TWintrustFileInfo));
ZeroMemory(@TrustData, SizeOf(TWinTrustData));
FileInfo.cbStruct := SizeOf(TWintrustFileInfo);
FileInfo.pcwszFilePath := PWideChar(FileName);
TrustData.cbStruct := sizeof(TrustData);
TrustData.dwUIChoice := WTD_UI_NONE;
TrustData.fdwRevocationChecks := WTD_REVOKE_NONE;
TrustData.dwUnionChoice := WTD_CHOICE_FILE;
TrustData.InfoUnion.pFile := @FileInfo;
Result := WinVerifyTrust(INVALID_HANDLE_VALUE, WINTRUST_ACTION_GENERIC_VERIFY_V2, TrustData) = ERROR_SUCCESS;
end;