Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.10;
Скачать: CL | DM;

Вниз

Кодек для AVI   Найти похожие ветки 

 
dima1   (2002-10-02 02:19) [0]

Господа !
Кто мне подскажет, как мне, именно, программно проверить, и если нет, то установить в систему кодек для проигрования своего файла AVI, сделанного в 3DMax. Надо для коммерческой программы, потому как попробуй темному ЮЗЕРУ, обьяснить как это сделать самому :).
Идеальный вариант с примерами. Но...
Заранее спасибо.


 
SPeller ©   (2002-10-02 09:20) [1]

Попытаться воспроизвести маленькую авишку, если вылезет ошибка, значит нету.


 
dima1   (2002-10-02 16:24) [2]

Так это и так понятно.
Как мне в этом случае его программно установить ??? Вот это для меня проблема. Даже идей нет никаких. :(


 
SPeller ©   (2002-10-02 17:11) [3]


> dima1 (02.10.02 16:24)

Берёшь и запускаешь инсталляшку (чаще всего это ЕХЕ)


 
dima1   (2002-10-03 13:25) [4]

У меня нет инсталяшки, есть только три файла и все. Это "mpg4ds.ax" "MPG4C32.dll" и "MPG4VKI.inf". Для установки в ручную, достаточно указать файл с расширением inf, правой кнопкой, и из меню выбрать УСТАНОВИТЬ, и вында сама устанавливает. Была бы инсталяшка небыло ба проблем. Так как же мне всетаки поступить. Кто подскажет?


 
sachem   (2002-10-03 20:02) [5]

А не проще найти инсталяшку в инете?


 
SPeller ©   (2002-10-03 23:38) [6]

Запусти Disk Monitor и посмотри какая прога этим занимается.


 
SCHMaster ©   (2002-10-04 02:55) [7]

Лови готовый модуль по проверк наличия кодека в системе :))
Ну а по тому, как установить - тебе уже сказали: ищешь в сети инсталляшку, и вперед. Есть кодек - не ставишь, нет кодека - ставишь.

unit CoCheck;

interface
uses
Windows, Registry,Classes, Controls;
function CodecExists(Codec:String):Boolean;
function CodecList(CL:TStrings;Mode:Integer):Boolean;
//Mode = 0 Полный список
//Mode = 1 Список DLL
//Mode = 2 Названия кодеков
implementation
function Decode(text,delim : string; vilken : integer):string;
var
start,slut,i : integer;
temptext : string;
begin
start := 0;
if vilken >0 then
begin
temptext := text;
if vilken = 1 then
begin
start := 1;
slut := pos (delim,text);
end
else
begin
for i:= 1 to vilken -1 do
begin
start:=pos(delim,temptext)+length(delim);
temptext:=copy(temptext,start,length(temptext));
end;
slut := pos (delim,temptext);
end;
if start >0 then
begin
if slut = 0 then slut := length(text);
result := copy (temptext,1,slut-1);
end
else
result := text;
end
else
result := text;
end;

function CodecExists(Codec:String):Boolean;
var
Reg:TREGINIFILE;
Temp:TStringList;
I:Integer;
begin
Result:=False;
Reg:=TREGINIFILE.Create;
Temp:=TStringList.Create;
//HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Temp.Clear;
Reg.OpenKey ("SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc",False);
Reg.ReadSectionValues("",Temp);
Reg.CloseKey;

if Temp.Count > 0 then
for I:=0 to Temp.Count-1 do
if Codec = Decode(Temp.Strings[I],"=",2) then
begin
Result:=True;
Exit;
end;
Temp.Free;
Reg.Free;
end;

function CodecList(CL:TStrings;Mode:Integer):Boolean;
var
Reg:TREGINIFILE;
I:Integer;
begin
Reg:=TREGINIFILE.Create;
//HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey ("SOFTWARE\Microsoft\Windows NT\CurrentVersion\drivers.desc",False);
Reg.ReadSectionValues("",CL);
Reg.CloseKey;

if (Mode <> 0) and (CL.Count > 0) then
for I:=0 to CL.Count-1 do
CL.Strings[I]:=Decode(CL.Strings[I],"=",Mode);

if CL.Count > 0 then Result:=True
else Result:=False;
Reg.Free;
end;

end.


 
Dima1   (2002-10-04 08:25) [8]

-> SCHMaster
Спасибо вам. Буду пробовать.


 
Dima1   (2002-10-04 08:30) [9]

-> SCHMaster
Спасибо вам. Буду пробовать.

-> sachem.
Наверное нет, потому, что я так и не узнаю тогда как это все делается. Это так или иначе, потом, когда нибудь понадобится.

-> SPeller
Я и так знаю какая прога им занимается. Моя. Но мне не это надо было.



 
SPeller ©   (2002-10-04 13:32) [10]

А чтобы не искать прогу (виндовую) которая занимается установкой когда щёлкаешь в эксплорере правой мышкой, то наверно просто скорми путь к этому файлу ShellExecute, он разберётся что дальше с ним делать и как устанавливать.


> Я и так знаю какая прога им занимается. Моя

Ну да, и ключи в реестре ты сам будешь делать и файлы куда надо копировать и регистрировать ДЛЛ-ки... Так?


 
dima1   (2002-10-05 06:53) [11]

Спасибо всем !
Я уже вьехал что к чему. Вышеприведенный код работает хорошо.
А для инсталяции, я делаю действительно через ShellExecute с параметром "INSTALL" а не "OPEN" как раньше пытался. Правда при инсталяции ЮЗЕРУ все равно прийдется отвечать на вопросы Винды.

Тему наверное можно считать закрытой.

Удачи.


 
Mike_Ip   (2002-10-28 15:17) [12]

У меня нет инсталяшки, есть только три файла и все. Это "mpg4ds.ax" "MPG4C32.dll" и "MPG4VKI.inf

А в чем проблемма?
*.ax - > regserv32 /s mpg4ds.ax (установить)
regserv32 /u mpg4ds.ax (удалить)
*.dll - > копируешь в WINDOWS\SUSTEM (SYSTEM32)
a inf не нужен.


 
Pumpkin ©   (2002-10-28 21:23) [13]

А почему бы тебе INF не запустить?
Посмотри в реестре коммандную строу:
[HKEY_CLASSES_ROOT\inffile\shell\Install\command]



Страницы: 1 вся ветка

Текущий архив: 2003.02.10;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.028 c
14-29078
REA
2003-01-25 12:41
2003.02.10
Мастер - это круто


4-29149
Vladimir_Shk
2002-12-26 11:37
2003.02.10
Закрытие окна


1-28699
Сергей
2003-01-31 14:16
2003.02.10
Вертикальная прокрутка ListBox


14-29002
Nick_N_A
2003-01-24 06:02
2003.02.10
C++


14-28994
Checist [root]
2003-01-26 00:43
2003.02.10
Хелпы к дельфам