Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с реестром [D7, XP]


Homo Sapiens ©   (2006-07-25 17:24:00) 

Люди. У меня возник вопросик. У меня на форме лежит компонент
CheckBox1. По нажатию на него должна происходить регистрация mp3 файла
(впрочем, неважно что mp3). Чегото не получается. Посмотрите:

procedure TForm_options.mp3Click(Sender: TObject);
var
 reg:TRegistry;
begin
 if mp3.Checked then
   begin
     reg := TRegistry.Create;
     reg.RootKey := HKEY_CLASSES_ROOT;
     reg.OpenKey('.mp3',true);
     reg.WriteString('', '.mp3');
     reg.CloseKey;
     reg.OpenKey('.mp3\shell\open\command', true);
     reg.WriteString('', ParamStr(0) + ' "%1"');
     reg.CloseKey;
     reg.Free;
   end else
 if not mp1.Checked then
   begin
     reg := TRegistry.Create;
     reg.RootKey := HKEY_CLASSES_ROOT;
     reg.OpenKey('.mp3',true);
     reg.WriteString('', '.mp3');
     reg.CloseKey;
     reg.OpenKey('.mp3\shell\open\command', true);
     reg.WriteString('', 'wmplayer.exe' + ' "%1"');
     reg.CloseKey;
     reg.Free;
   end;
end;


Homo Sapiens   (2006-07-25 19:09:00) [1]

А ещё
Кто-нибудь знает как перекодировать например wav в mp3
Или может компонент есть какой????


IceBeerg   (2006-07-25 18:58:00) [2]

var
reg:TRegistry;
ProgramFilesDir:String;
begin
if mp3.Checked then
  begin
    reg := TRegistry.Create;
    reg.RootKey := HKEY_CLASSES_ROOT;
    reg.OpenKey('.mpZ',true);
    reg.WriteString('', 'mpZfiles');
    reg.CloseKey;
    reg.OpenKey('mpZfile\shell\open\command', true);
    reg.WriteString('','"' + ParamStr(0) + ' %1" %*');
    reg.CloseKey;
    reg.Free;
  end else
  begin
    reg := TRegistry.Create;
    reg.RootKey := HKEY_CLASSES_ROOT;
    reg.OpenKey('.mpZ',true);
    reg.WriteString('', 'mpZfile');
    reg.CloseKey;
    reg.RootKey := HKEY_LOCAL_MACHINE;
    reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion',true);
    ProgramFilesDir:=reg.ReadString('ProgramFilesDir');
    reg.CloseKey;
    reg.RootKey := HKEY_CLASSES_ROOT;
    reg.OpenKey('mpZfile\shell\open\command', true);
    reg.WriteString('','"'+ProgramFilesDir+'\Windows Media Player\wmplayer.exe" /prefetch:6 /Open "%L"');//Толко здесь нужен полный путь в файлу wmplayer.exe
    reg.CloseKey;
    reg.Free;
  end;


IceBeerg   (2006-07-25 18:58:00) [3]

Если где ошибся поправляйте, писал на скорую руку.


Homo Sapiens   (2006-07-25 18:49:00) [4]

ААААА форточка переустановилась!!!

> if mp3.Checked then
> ...
> if not mp1.Checked then
это опечатка....

Стакану вери биг СПАСИБО!!!


saxon   (2006-07-25 18:14:00) [5]

Эта, автар еще не переустановил > Винду? ... :)))


Stakan   (2006-07-25 18:10:00) [6]

saxon   (25.07.06 18:07) [7]
Логика - да, но суть моего замечания в том, чтобы два раза не писать один и тот-же код, и правильно работать с объектами.


saxon   (2006-07-25 18:07:00) [7]


> Stakan ©   (25.07.06 18:05) [6]
> Да, не углядел, но сути дела это не меняет

Ну я бы так не говорил. Уж точно логика мпоменялась. :)


Stakan   (2006-07-25 18:05:00) [8]

saxon   (25.07.06 17:50) [4]
Да, не углядел, но сути дела это не меняет
Footballer ©   (25.07.06 17:59) [5]
Надеюсь, не из - за моего кода:)))


Footballer   (2006-07-25 17:59:00) [9]

Homo Sapiens сейчас Винду переустанавливает, я за него говорю СПАСИБО :))


saxon   (2006-07-25 17:50:00) [10]


> Stakan ©   (25.07.06 17:33) [2]

см. [0]

> if mp3.Checked then
> ...
> if not mp1.Checked then


Homo Sapiens   (2006-07-25 17:37:00) [11]

Спасибо ша попробую


Stakan   (2006-07-25 17:33:00) [12]

Не знаю, что не получается, но я бы переписал код следующим образом:
procedure TForm_options.mp3Click(Sender: TObject);
var
 App: String;
begin
 if mp3.Checked then
   App := ParamStr(0)
 else
   App := 'wmplayer.exe';
 with TRegistry.Create do
 try
   RootKey := HKEY_CLASSES_ROOT;
   OpenKey('.mp3', True);
   WriteString('', '.mp3');
   CloseKey;
   OpenKey('.mp3\shell\open\command', true);
   WriteString('', App + ' "%1"');
   CloseKey;
 finally
   Free;
 end;
end;

Глядишь отладка упростится


Homo Sapiens   (2006-07-25 17:26:00) [13]

АААА чуть не забыл
зарегестрировать *.txt получается    %)


Наверх

Титульная страница Поиск, карта сайта Написать письмо