![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с реестром [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 получается %)