Author: Jonas Bilinkevicius How to check if ActiveX is installed on a target machine Answer: Solve 1: Use the CLSIDFromProgID method: 1 { ... } 2 var 3 strOLE: string; 4 begin 5 strOLE = "YourCOMServer.Application" {your ProgID} 6 if (CLSIDFromProgID(PWideChar(WideString(strOLE), ClassID) = S_OK) then 7 begin 8 { ... } 9 end; 10 end; Solve 2: Check the registry: 11 { ... } 12 const 13 cKEY = '\SOFTWARE\Classes\CLSID\%s\InprocServer32' 14 var 15 sKey: string; 16 sComServer: string; 17 exists: boolean; 18 Reg: TRegistry; 19 begin 20 Reg := TRegistry.Create; 21 try 22 Reg.RootKey := HKEY_LOCAL_MACHINE; 23 sKey := format(cKEY, [GuidToString(ClassID)]); 24 if Reg.OpenKey(sKey, False) then 25 begin 26 sComServer := Reg.ReadString(''); 27 if FileExists(sComServer) then 28 begin 29 { ... } 30 end; 31 end; 32 finally 33 Reg.free; 34 end; 35 end;