Установочный файл + ассоциирование файлов
|
|
xaramamburu | Дата: Воскресенье, 08.07.2012, 19:48 | Сообщение # 31 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| Filo$oF, Вот http://basicsprog.ucoz.ru/uroki_delphi/multimedia/urok1_4/mp3.zip добавил к тому проекту, который я уже выкладывал с динамическими вкладками возможность открывать mp3 при запуске. Вроде все работает и сохраняет в ini файл. Хотя я сильно над ней не издевался.
|
|
| |
Filo$oF | Дата: Понедельник, 09.07.2012, 08:23 | Сообщение # 32 |
Лейтенант
Группа: Пользователи
Сообщений: 61
Статус: Offline
| xaramamburu, Спасибо, но я понял в чём у меня проблема. Я вывожу в Form2 данные о треке - теги. Да ко всему ещё и считываю коверарт. Всё это происходит в процедуре player. Видимо, программа пытается вывести данные в label'ы второй формы формы когда они ещё не созданы.
|
|
| |
BM_GORA | Дата: Вторник, 10.07.2012, 16:50 | Сообщение # 33 |
Лейтенант
Группа: Пользователи
Сообщений: 44
Статус: Offline
| Пытался сделать запуск песен из проводника, делаю делаю, и тут надо открыть проэкт с форматом dpr, открыл путем File->Open->GorPlayer.dpr Начинаю вставлять код и тут сразу же ошибки, ну я на них забил, и доделал до конца, в общем при запуске вот что выдает :
[DCC Error] mp3.pas(8): F2092 Program or unit 'mp3' recursively uses itself
и красным подсвечивается вот эта строчка:
mp3 in 'mp3.pas' {Form_player};
и еще, чет я непойму в чем разница между dpr и dproj, они же совершенно одинаковые, то что я написал в dpr отображается в dproj и через dproj можно править dpr и наоборот.Добавлено (10.07.2012, 16:50) --------------------------------------------- помогите плиззз ))
Сообщение отредактировал BM_GORA - Понедельник, 09.07.2012, 12:48 |
|
| |
xaramamburu | Дата: Вторник, 10.07.2012, 22:40 | Сообщение # 34 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| BM_GORA, Присылайте исходники проекта на почту. Время будет, посмотрю. А так сложно что то сказать.
|
|
| |
BM_GORA | Дата: Среда, 11.07.2012, 00:12 | Сообщение # 35 |
Лейтенант
Группа: Пользователи
Сообщений: 44
Статус: Offline
| ок, отправил ))
|
|
| |
Filo$oF | Дата: Среда, 11.07.2012, 19:12 | Сообщение # 36 |
Лейтенант
Группа: Пользователи
Сообщений: 61
Статус: Offline
| xaramamburu А вы не знаете, как сделать ассоциацию через реестр? Я вроде нашёл почитал, но у меня не работает. Да и вообще выдаёт порой ошибку связанную с comctl32.dll.
Code procedure Associate; var s:string; begin Reg:=TRegistry.Create; // создаем Reg.RootKey := HKEY_CLASSES_ROOT; // указываем корневую ветку Reg.OpenKey('.mp3\OpenWithProgids\', true); Reg.WriteString('TestApplication.rtf', ''); Reg.OpenKey('\SiMP.exe\DefaultIcon\', true); s:=Application.ExeName+',0'; Reg.WriteString('', s); Reg.OpenKey('\SiMP.exe\Shell\Open\', true); Reg.WriteString('', 'Открыть в TestApplication'); Reg.OpenKey('command\', true); s:='"'+Application.ExeName+'" "%1"'; Reg.WriteString('', s); Reg.Free; SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); end;
|
|
| |
xaramamburu | Дата: Четверг, 12.07.2012, 11:45 | Сообщение # 37 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| Filo$oF, Попробуй так: Code procedure Associate; var s:string; begin Reg:=TRegistry.Create; // создаем Reg.RootKey := HKEY_CURRENT_USER; // указываем корневую ветку
Reg.OpenKey('\Software\Classes\Applications\TestApplication.exe\DefaultIcon', true); s:=Application.ExeName+',0'; Reg.WriteString('', s);
Reg.OpenKey('\Software\Classes\Applications\TestApplication.exe\Shell\Open', true); Reg.WriteString('', 'Открыть в mp3player');
Reg.OpenKey('command\', true); s:='"'+Application.ExeName+'" "%1"'; Reg.WriteString('', s);
Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mp3\UserChoice', true); Reg.WriteString('ProgId', 'Applications\TestApplication.exe');
Reg.Free;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); end;
procedure DeleteAssociate; begin Reg:=TRegistry.Create; Reg.RootKey := HKEY_CURRENT_USER;
reg.DeleteKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mp3'); reg.DeleteKey('\Software\Classes\Applications\TestApplication.exe');
Reg.Free;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); end;
|
|
| |
BM_GORA | Дата: Воскресенье, 15.07.2012, 11:59 | Сообщение # 38 |
Лейтенант
Группа: Пользователи
Сообщений: 44
Статус: Offline
| Quote (xaramamburu) procedure Associate; var s:string; begin Reg:=TRegistry.Create; // создаем Reg.RootKey := HKEY_CURRENT_USER; // указываем корневую ветку
Reg.OpenKey('\Software\Classes\Applications\TestApplication.exe\DefaultIcon', true); s:=Application.ExeName+',0'; Reg.WriteString('', s);
Reg.OpenKey('\Software\Classes\Applications\TestApplication.exe\Shell\Open', true); Reg.WriteString('', 'Открыть в mp3player');
Reg.OpenKey('command\', true); s:='"'+Application.ExeName+'" "%1"'; Reg.WriteString('', s);
Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mp3\UserChoice', true); Reg.WriteString('ProgId', 'Applications\TestApplication.exe');
Reg.Free;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); end;
procedure DeleteAssociate; begin Reg:=TRegistry.Create; Reg.RootKey := HKEY_CURRENT_USER;
reg.DeleteKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mp3'); reg.DeleteKey('\Software\Classes\Applications\TestApplication.exe');
Reg.Free;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); end;
этот способ лучше чем предыдущий ? и не будет ли такого как с таймером ?
|
|
| |
xaramamburu | Дата: Воскресенье, 15.07.2012, 21:29 | Сообщение # 39 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| BM_GORA, Чем вам не нравится предыдущий способ, если вы не можете его настроить под свои нужды это не значит, что он не имеет право на существование. Тем более, что другого способа еще никто не предложил. А этот кусок программы позволяет сделать ассоциацию mp3 файлов с вашей программой прямо из плеера, а не через свойства файла.))))))))
|
|
| |
BM_GORA | Дата: Четверг, 19.07.2012, 16:54 | Сообщение # 40 |
Лейтенант
Группа: Пользователи
Сообщений: 44
Статус: Offline
| Quote (xaramamburu) Чем вам не нравится предыдущий способ тем что там марока с таймером
Добавлено (19.07.2012, 16:54) --------------------------------------------- Quote (xaramamburu) это не значит, что он не имеет право на существование а я ничего и не говорю, пусть существует, просто он муторный, какой то, полюбому есть какой то способ в котором допустим не нужен таймер, ну и т.д.
Сообщение отредактировал BM_GORA - Четверг, 19.07.2012, 16:55 |
|
| |
Саша8033 | Дата: Воскресенье, 11.11.2012, 22:23 | Сообщение # 41 |
Рядовой
Группа: Пользователи
Сообщений: 5
Статус: Offline
| CopyDataStruct : TCopyDataStruct; У меня делфи ругается вот на эту строчку =(
|
|
| |
xaramamburu | Дата: Воскресенье, 11.11.2012, 22:35 | Сообщение # 42 |
Полковник
Группа: Администраторы
Сообщений: 240
Статус: Offline
| Саша8033, Посмотрите прописано ли у вас: uses Forms, Windows
|
|
| |
|