Здраствуйте эксперты. У меня стандартный проигрыватель WAV файлов - Winamp. Как мне сделать, так, чтобы WAV файлы проигрывала моя программа (видимо как-то через реестр (естественно используя Delphi)). Пасибо!
Здравствуйте, PC GAMER! (и зачем гамеру делфя - чувак, в это не играют! :) ) Короче вот. Информация о типах файлов хранится в реестре в разделе HKEY_CLASSES_ROOT. Находим там нужный тип файла - в нашем случае раздел ".wav". Его значение по умолчанию - стринг с сылкой на раздел с описание че делать то. В твоем случае он равен "Winamp.file". ЭТО ЗНАЧЕНИЕ ТЕБЕ НАДА БУДЕТ ПОМЕНЯТЬ НА ТВОЙ "PCGamerPlayer.file". Собственно далее находим раздел "HKEY_CLASSES_ROOTWinamp.file" (а ты стало быть создаешь свой этот "PCGamerPlayer.file". Этот раздел имеет структуру: Значение по умолчанию - описание "Winamp file" В shell: Open - в нем command - командная строка: "C:PROGRAM FILESWINAMPWINAMP.EXE" "%1" Ну и другие команды типа Play, Edit и все такое. Далее, значится в делфе есть класс
TRegistry. Смотри описание и это: procedure TForm1.Button2Click(Sender: TObject); Var a: TRegistry; begin a:=TRegistry.Create; a.RootKey:=HKEY_CLASSES_ROOT; if a.OpenKey('.wav',false) then Button2.Caption:=a.ReadString(''); end; Ответ отправлен: 13.08.2002, 23:03 Отправитель: Painbringer Отвечает nix
Доброе время суток, PC GAMER! Енто можно сделать и без Delphi>>> Первый способ(простой): Выделяешь любой *.wav, затем, удерживая Shift, Щелкаещь правой кнопкой по ентому файлу >> открыть с помощью... >>> >>> ставишь галку "всегда открывать файлы ентого типа"(или что-то в роде етого) >>> Обзор... >>> указываешь свою программу >>> ОК >>> ОК. :-))) Второй способ(продвинутый): Открываешь проводник меню вид >>> свойства папки... >>> Типы файлов >>> находишь тип wav >>> свойства ... Дальше сам разберешся :-)))) Ответ отправлен: 13.08.2002, 12:48 Отправитель: nix Отвечает Артём Шегеда
Приветствую Вас, PC GAMER!
Немного повозмущаюсь по праву старшего... Как можно писать такие программы, не зная, как работает Windows? Вы бы хотя бы в реестр заглянули...
Теперь по делу. В реестре в разделе HKEY_CLASSES_ROOT\ хранятся ассоциации файлов в формате "HKEY_CLASSES_ROOT\.ext", где ".ext" - расширение файла. Значение "по умолчанию" хранит псевдоним этого типа файлов. А вот "HKEY_CLASSES_ROOT\Псевдоним" хранит действия, которые выполнит Windows для работы с этим типом файлов. К примеру, у меня "HKEY_CLASSES_ROOT\.wav\@" содержит "RealPlayer.WAV.6", а "HKEY_CLASSES_ROOT\RealPlayer.WAV.6\shell\opencommand\@" содержит "C:\Program Files\Real\RealOne Player\RealPlay.exe" "%1". Чтобы решить твою задачу, следует сделать пять действий. 1. Научиться
работать с TRegistry (Uses Registry) 2. Создать (или открыть) ключ "HKEY_CLASSES_ROOT\.wav" и присвоить параметру "@" значение "MyApp.WAV" (или что-то типа того) 3. Создать ключ "HKEY_CLASSES_ROOT\MyApp.WAV\shell\open\command" и присвоить параметру "@" значение "C:\Program Files\MyApp.exe" "%1". 4. Открыть ключ "HKEY_CLASSES_ROOT\MyApp.WAV\shell" и присвоить параметру "@" значение "open". 5. Предусмотреть в своей программе обработку командной строки (ParamCount, ParamStr())
Почитай справку по компоненте TRegistry. Ответ отправлен: 13.08.2002, 12:52 Отправитель: Артём Шегеда Отвечает P@V
Добрый день, PC GAMER! Очень просто. Если на своей машине то ручками [Shift]+пр.клик->открыть с помощью... Dmr>Как зарегистрировать свое расшерения для файлов? Т.е. Dmr>чтобы при щелчке по такому файлу вызывалась моя Dmr>программа. Dmr>Вот пример: //Use the registry to register your own filetype. uses registry; procedure TForm1.RegisterFileType(prefix:String; exepfad:String); var reg:TRegistry; begin reg:=TRegistry.Create; reg.RootKey:=HKEY_CLASSES_ROOT; //create a new key --> .pci reg.OpenKey('.'+prefix,True); //create a new value for this key --> pcifile reg.WriteString('',prefix+'file'); reg.CloseKey; //create a new key --> pcifile reg.CreateKey(prefix+'file'); //create a new key pcifileDefaultIcon reg.OpenKey(prefix+'fileDefaultIcon',True);
//and create a value where the icon is stored --> c:project1.exe,0 reg.WriteString('',exepfad+',0'); reg.CloseKey; &! nbsp;reg.OpenKey(prefix+'fileshellopencommand',True); //create value where exefile is stored --> c:project1.exe "%1" reg.WriteString('',exepfad+' "%1"'); reg.CloseKey; reg.Free; end;
procedure TForm1.Button1Click(Sender: TObject); begin RegisterFileType('pci','c:project1.exe'); end;
Dmr>Комментирий от Eugine Veselov (veselov@astral.ntu-Dmr>kpi.kiev.ua) А не проще при создании установочного пакета, выставить настройки реестра, заодно и дерегистрацию обеспечим, да и файлы нужного типа будут с нужными иконками ДО первого запуска програмы. Ответ отправлен: 13.08.2002, 13:59 Отправитель: P@V Отвечает Марк Абловацкий
Приветствую Вас, PC GAMER! Зачем реестр??? И зачем Delphi??? Нажимаешь правую кнопку мыши, зажимая Shift, на файле WAV. Выбираешь действие "Открыть с помощью -> Выбрать проограмму". Нажимаешь "Другая". Выбираешь свою программу, Ставишь галочку на "Использовать её для всех файлов такого типа". Ответ отправлен: 13.08.2002, 17:39 Отправитель: Марк Абловацкий
Вопрос № 124
Здравствуйте! Допустим база данных(Paradox) создана! Я хочу, чтобы она работала на любом компьютере! Что для этого нужно? Какой минимум нужно устанавлить на другом компе (как составить CD), чтоб я на 100% был уверен, что она там работает? И ещё!! Как зарегистрировать альяс на чужем компе, чтоб был доступ к базе?
Привет чувак!!! Дык нафиг тебе алиас? нафиг тебе устанавливать БДЕ и все такое. если у тебя не супер-пупер грандиозный проект то можно просто открывать свои файлы с таблицами а в католог с прогой навалять файлов бдешных. я вот в одном проекте таскаю вот чё (см. приложение). типа может и не культурно - зато надежно и нет конфликтов с версиями.
Приложение: Ответ отправлен: 13.08.2002, 23:03 Отправитель: Painbringer Отвечает Артём Шегеда
Добрый день, Orlando!
Если есть базы данных, то предполагается использование BDE32. А значит, в инсталляцию следует включить установку BDE. Функции работы с BDE расписаны в "C:\Program Files\Common Files\Borland Shared\BDE\bde32.hlp" (если ты, конечно, ставил "по умолчанию"). Тебе, в частности, нужна DbiAddAlias. В хелпе даже примеры есть. Ответ отправлен: 13.08.2002, 16:31 Отправитель: Артём Шегеда Отвечает Pablo
Здравствуй, Orlando! Ну смотря какой компонент ты там используешь ты можешь устанавливать либо BDE, либо Interbase или либо MySQL. А чтоб вообще безо всего работала база данных, то используй TADO компоненты и, например, базу данных MS Access. Ответ отправлен: 14.08.2002, 22:55 Отправитель: Pablo
Вопрос № 125
Пришлите пример использования WIN API в Delphi, желательно с комментариями.
Приложение: Ответ отправлен: 13.08.2002, 12:33 Отправитель: nix Отвечает Артём Шегеда
Здравствуйте, Yevg!
Где-то читал, что "... использование Delphi VCL не отменияет использования Windows API, а наоборот - дополняет Windows API новыми возможностями". Я же, стараюсь использовать VCL по-минимуму, тогда, когда нужно что-то быстро сделать. Для "грандиозных проектов" стараюсь использовать Windows API.
Приложение: Ответ отправлен: 13.08.2002, 15:39 Отправитель: Артём Шегеда Отвечает Sanya
Доброе время суток, Yevg! Usses ShellAPI -Объявляем. ... ShellExecute(Handle,nil,'file.doc',nil,nil,SW_RESTORE); - пользуем, т.е. запускаем word(точнее программу зарегестрированную для фалов *.doc) и открываем в нём file.doc! Удачи! Ответ отправлен: 14.08.2002, 02:30 Отправитель: Sanya
Вопрос № 126
Здравтвуйте товарищи! Не подскажите ли у TPrinter свойство copies вообще работает или надо все руками делать? и когда ему значение задавать.
Доброе время суток, Painbringer! Отлично работает, к примеру: Printdialog1.Copies:=25; Printdialog1.Execute; В обратную сторону работает тоже: If Printdialog1.Execute = true then ColCopies:=Printdialog1.Copies Удачи! Ответ отправлен: 14.08.2002, 03:02 Отправитель: Sanya Отвечает Pablo
Доброе время суток, Painbringer! Ну по идее должно работать, если задать ему значение заранее. Ответ отправлен: 14.08.2002, 22:55 Отправитель: Pablo
Вопрос № 127
Здравствуйте, masters! Может быть кто-нибудь знает, как сделать, чтобы cd-rom не открывался, когда на нем нажимают кнопочку (без молотка - программно)? У меня есть основание предполагать, что это возможно.
Добрый день, Евгений! Конечно возможно. Ставь хук на открывашку и лови своей прогой. Ответ отправлен: 14.08.2002, 18:18 Отправитель: ROM Отвечает ALastorZ
Здравствуйте, Евгений! У меня тоже, во всяком случае Nero это делает на ура... Правда как оно делается я в свое время (с полгода назад) в рунете и книжках искал так и не нашёл, хотел прогу пакостницу написать, так что я думаю, что стандартной Дельфовой функции таковой нет придется использовать что-то еще, может просто апишная функция есть а может и нет... Ответ отправлен: 14.08.2002, 05:26 Отправитель: ALastorZ Отвечает nix
Здравствуйте, Евгений! На сколько я занаю, такой возможности нет.
Ответ отправлен: 14.08.2002, 06:08 Отправитель: nix Отвечает Sergey Lizin
Доброе время суток, Евгений! Как это сделать не знаю, но хочу сказать, что в Linux так оно и есть при загрузке. Скорее всего через порты. Ответ отправлен: 14.08.2002, 12:11 Отправитель: Sergey Lizin
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.