You should be able to read such application/assembly metadata using System.Reflection. This, however, applies to applications written using the .NET framework. If it were a COM DLL or VB6 EXE for example, then you may need to look at the associated file metadata (in summary?) to get the information out.

The above techniques will not work for all information. You cannot figure out when the trial version for any arbitrary application will expire as the logic to implement it will vary from exe to exe. The size is simple enough - just look at the FileInfo - size.