怎样检测系统是否安装了最新FLASH插件?(100分)

  • 主题发起人 主题发起人 laoli
  • 开始时间 开始时间
L

laoli

Unregistered / Unconfirmed
GUEST, unregistred user!
注意是最新的,因为系统通常都装有FLASH插件,但是不是最新的
所以不能判断是否安装了插件,
我记得好像能检测注册表的某个键,但是忘记了
请那位大侠,帮帮我。。。。。。。。。。。。。。。
HELP me.....................
 
自己在注册表里找一找不就行了?
 
如果能找到,就不想麻烦大家啦
 
通过注册表来查,不是稳妥的办法。
最新的名称,是FLASH。OCX。
在系统的SYSTEM目录里有。你查下。
 
用API取系统目录你会吧, 那就没问题, 系统目录 + '/Macromed/Flash/Flash.ocx'这个文件要是存在的话就有.
 
可以看看
HKEY_CLASSES_ROOT/ShockwaveFlash.ShockwaveFlash.1
HKEY_CLASSES_ROOT/ShockwaveFlash.ShockwaveFlash.2
HKEY_CLASSES_ROOT/ShockwaveFlash.ShockwaveFlash.3
HKEY_CLASSES_ROOT/ShockwaveFlash.ShockwaveFlash.4
HKEY_CLASSES_ROOT/ShockwaveFlash.ShockwaveFlash.5
HKEY_CLASSES_ROOT/ShockwaveFlash.ShockwaveFlash.6

后面的应该是版本号吧!
 
接受答案了.
 
判断是否安装 Flash, 并获得版本号。
我装的是 Flash 6 ,用以下方法得到的版本号是正确的。
如果显示不正确,你可以看一下 flash.FlashVersion 的值。
showmessage(inttostr(flash.FlashVersion))
然后自己进行处理。

Uses …, ShockwaveFlashObjects_TLB;
..............
procedure TForm1.FormCreate(Sender: TObject);
var
flash:TShockwaveFlash;
Flashed:Boolean;
x:integer;
begin
try
flash:=TShockwaveFlash.Create(self);
Flashed:=true;
except
Flashed:=false;
end;
if not Flashed then
begin
showmessage('未安装 Flash');
exit;
end;
x:=flash.FlashVersion;
x:=x shr 16;
showmessage(Format('Flash Version %d',[x]));

flash.parent:=self;
flash.left:=0;
flash.top:=0;
flash.width:=200;
flash.height:=200;
flash.visible:=true;
flash.LoadMovie(0,'d:/temp.swf');
end;
 
后退
顶部