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

Вниз

Программа открывающая файл   Найти похожие ветки 

 
Cj ©   (2007-04-28 08:06) [0]

Всех категорически приветствую! Как можно узнать путь программы которая открывает данный файл. ShellExecute - находит а как найти мне?


 
Сергей М. ©   (2007-04-28 08:21) [1]


> ShellExecute - находит


Это как ?


 
Cj ©   (2007-04-28 08:30) [2]


> > ShellExecute - находитЭто как ?

Ну в смысле она не возвращает путь к программе, а запускает программу с параметром на файл.
А как мне определить программу зарегестрированную под определенный тип файла? Заранее спасибо.


 
Cj ©   (2007-04-28 08:34) [3]

Мне надо запустить жту программу с параметром на файл. Почуму не ShellExecute - знайте она проверяет запрет: RestrictRun в реестре!


 
Сергей М. ©   (2007-04-28 08:57) [4]


> как мне определить программу зарегестрированную под определенный
> тип файла?


Вот последовательность действий на примере dpr-файлов:

1. Ищешь и открываешь ключ реестра
HKEY_CLASSES_ROOT\.dpr

2. Читаешь из него значение по умолчанию
DelphiProject

3. Ищешь и открываешь ключ реестра
HKEY_CLASSES_ROOT\DelphiProject

4. Открываешь подключ
HKEY_CLASSES_ROOT\DelphiProject\Shell\Open\command

5. Читаешь в нем знечение по умолчанию
C:\Program Files\Borland\Delphi7\Bin\delphi32.exe /np

Полученное значение есть ком.строка для запуска Делфи в режиме открытия существующего проекта. Инструмент для запуска - ф-ция CreateProcess()


 
Fredy314 ©   (2007-04-28 09:16) [5]

поправочка, имейте ввиду подключ \Shell\Open\command может быть указан сразу для расширения файла.


 
Cj ©   (2007-04-28 09:43) [6]


> Сергей М. ©   (28.04.07 08:57) [4]


Да, этим способом сам делал. Но например BRED2 открывает .txt и этим способом путь к нему не найти- вот в чем прикол. И подскажите еще- как добавить во все типы файлов свой пункт, добавлял только к определенным а так-нет, но WINRAR - же добавляет, разбирался, так и не разобрался


 
Сергей М. ©   (2007-04-28 10:11) [7]


> BRED2 открывает .txt


Что еще за "бред" ?


> как добавить во все типы файлов свой пункт


Куча статей в Тырнете на эту тему)


 
Cj ©   (2007-04-28 10:23) [8]


> > BRED2 открывает .txtЧто еще за "бред" ?> как добавить
> во все типы файлов свой пункт


Да , понял, только что это сделал. А BRED2 это замена блокноту


 
Сергей М. ©   (2007-04-28 10:26) [9]


> путь к нему не найти


Что значит "не найти" ?
Где, что и как ищешь - показывай ...


 
Cj ©   (2007-04-28 10:28) [10]


> > путь к нему не найтиЧто значит "не найти" ?Где, что и
> как ищешь - показывай ...


Всмысле к чему? Спасибо.
Вот щас ф-ю сбацал если кому надо:

function getfileprogram(s: string): string;
var
ext,extname,progpath:string;
begin
if (lowercase(extractfilename(s))=".exe")or
  (lowercase(extractfilename(s))=".com")then
  result:=s else
  begin
       ext:=extractfileext(s);
       with TRegistry.Create(key_read)do
       begin
            rootkey:=HKEY_CLASSES_ROOT;
            if openkey(ext,false)=true then
               begin
                    extname:=readstring("");
                    closekey;
                    if openkey(extname+"\shell\open\command",false)=true then
                       begin
                            progpath:=readstring("");
                            closekey;
                            result:=progpath;
                       end else result:="";
            end else result:="";
            free;
       end;
  end;
end;


 
Cj ©   (2007-04-28 10:32) [11]

И еще вопрос: когда нахожу прогу она там с параметрами или EXPAND-ная (как эту раскрыть знаю), а как избавить ся от (",%1) параметров, чтобы найти чистый путь?


 
Cj ©   (2007-04-28 10:33) [12]

Можно конечно поудалять все эти символы, но как знать что они не в пути программы


 
Сергей М. ©   (2007-04-28 10:58) [13]


> как знать что они не в пути программы


Ну ты просмотри несколько таких записей в реестре и определи закономерность - в чем проблема-то ?

Правил не так уж и много:

1. Пути, содержащие пробелы, заключается в кавычки
2. Пути в ком.строках отделяются от параметров пробелами.
3. Если параметр начинается с %, то он подстановочный.
4. Системные переменные в пути, например, SystemRoot, справа и слева обрамляются символами %



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

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

Наверх




Память: 0.5 MB
Время: 0.066 c
15-1176907923
Delus
2007-04-18 18:52
2007.05.20
Анимация GIF ов


2-1177492705
webpauk
2007-04-25 13:18
2007.05.20
Handle


1-1174478364
alyona
2007-03-21 14:59
2007.05.20
dbf-файлы


2-1177656093
Atb
2007-04-27 10:41
2007.05.20
Проблема с типами


8-1157620564
ScoPal
2006-09-07 13:16
2007.05.20
Play List