Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Определить, установлен ли Adobe Flash

01.01.2007
program SeekFlash;
 
 uses
   
Forms, Windows, INIFiles, SysUtils, Dialogs, ShellApi;
 
 
{$R *.RES}
 
 type
   
TVersionInfo = record
     dwSignature
,
     dwStrucVersion
,
     dwFileVersionMS
,
     dwFileVersionLS
,
     dwProductVersionMS
,
     dwProductVersionLS
,
     dwFileFlagsMask
,
     dwFileFlags
,
     dwFileOS
,
     dwFileType
,
     dwFileSubtype
,
     dwFileDateMS
,
     dwFileDateLS
: DWORD;
   
end;
 
 
 
var
   
//Reg:TRegistry;
 
Ini: TIniFile;
   
Text: array[1..4] of string;
 
   
AppPath, IniFile, MySec: string;
   
SetupFile, RunFile, SetupClass: string;
 
   
VersionStr, BrowserStr: string;
 
   
{RegSubKey,} OpenBrowser, PlugInName, UseExt: string;
   
MainVersion: Word;
   
// FoundOne :Boolean;
 
 
PVer, DPchar, POpenBrowser: PChar;
   
MyPoint: Pointer;
   
PLen: Cardinal;
   version
: ^TVersionInfo;
   
DumD: DWORD;
   
LWord, HWord: Word;
 
   
CheckHandle: Hwnd;
 
   
//---------------------------
 
//Gets the Plugin (file-) Version
 
//---------------------------
procedure
GetVersion(pluginName: string);
 
begin
   
DPChar := StrAlloc(255);
   
DPchar := PChar(PluginName);
 
   
PVer := StrAlloc(getFileVersionInfoSize(DPchar, Plen));
   getFileVersionInfo
(DPChar, 0, 255, PVer);
   
VerQueryValue(Pver, '\', MyPoint, Plen);
 
   Version := myPoint;
 
   dumD  := Version.dwFileVersionMS;
   hword := dumD shr 16;
   lword := dumD and 255;
 
   MainVersion := hword;
   VersionStr  := IntToStr(Hword) + '
.' + IntToStr(LWord);
 
   dumD  := Version.dwFileVersionLs;
   hword := dumD shr 16;
   lword := dumD and 255;
 
   versionStr := versionStr + '
.' + IntToStr(Hword) + '.' + IntToStr(lWord);
 end;
 
 begin
   appPath := extractFileDir(Application.exeName);
 
 
   // runFile:= '
test.htm';
  //runFile must be a html File to determin wich browser(NC or IE) is used
  POpenBrowser := StrAlloc(255);
   FindExecutable(PChar(extractFileName(runFile)),
     PChar(extractFileDir(runFile)), POpenBrowser);
   OpenBrowser := POpenBrowser;
 
   if not Fileexists(openBrowser) then
   begin
     MessageDlg(Text[4], mtInformation, [mbOK], 0);
     halt;
   end;
 
 
   //set the FileLocations for Netscape or IE
  if Pos('
NETSCAPE.EXE', uppercase(trim(OpenBrowser))) <> 0 then
   begin //found Netscape
    BrowserStr := '
Netscape Comunicator';
     PlugInName := Copy(OpenBrowser, 1, Pos('
NETSCAPE.EXE',
       uppercase(trim(OpenBrowser))) - 1);
     PluginName := PlugInName + '
Plugins\NPSWF32.dll';
   end
   else
   //found IEExplorer
  begin
     BrowserStr := '
Internet Explorer';
 
     DPChar := StrAlloc(255);
     GetSystemDirectory(DPChar, 255);
     PluginName := DPChar + '
\Macromed\Flash\swflash.ocx';
     DPChar     := nil;
   end;
 
   GetVersion(pluginName);
 
   //returned Version Number, may be checked
  while mainVersion < 4 do
   begin
     if messagedlg(Text[2], mtInformation, [mbYes, mbNo], 0) = 6 then
     begin
       //installFlash;
    end
     // if message
    else
       halt;
 
     getVersion(pluginName);
   end; // while mainVer
end.

Взято с сайта: https://www.swissdelphicenter.ch