Определить, установлен ли 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