![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно определить установлен Flash [D7, WinXP]
TitanDesign © (2004-10-02 06:21:00)Как программно определить установлен ли плугинс Flash, а если нет то тогда бы запускался *.exe файл?
Dimaxx (2004-10-02 13:06:00) [1]Проверить наличие ветки реестра:
HKEY_CLASSES_ROOT\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}
Если есть, то установлен. Но почему-то проверяешь - есть такой, а запускаешь прогу, в которой используется этот ActiveX-плагин, ошибка и пишет "Класс не зарегистрирован". Проходится при создании формы с плагином извращаться так:
var
R: HKey;
FS: string;
...
R:=RegKeyOpenRead(HKEY_CLASSES_ROOT,'CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}\InprocServer32');
if R<>0 then
begin
// Читаем путь и имя файла к плагину
FS:=RegKeyGetStr(R,'');
RegKeyClose(R);
// Если такой файл есть - регистрируем в системе
if FileExists(FS) then RegisterCOMServer(FS);
end;
Функция RegisterCOMServer находится в COMobj.pas. Тогда работает. Но если такая ветвь не найдена - глючит.
Мне тоже интересно как правильно проверить наличие этого плагина и корректно отображать флэшки без ошибок.
GanibalLector (2004-10-02 12:59:00) [2]Вроде CLSIDFromProgID должен помочь.Ну а если нет,то реестр пока еще не отменяли.