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

Previous  Top  Next

    
 

 

Code:

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.

 

©Drkb::04476

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