Главная страница
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.039 c
3-1172760328
Alex2006
2007-03-01 17:45
2007.05.20
Проблема с Dialect?


2-1178102376
Neket
2007-05-02 14:39
2007.05.20
Колличество строк


2-1178253625
Neket
2007-05-04 08:40
2007.05.20
Имя файла.


2-1178297363
Клик
2007-05-04 20:49
2007.05.20
БД


2-1178196382
pavel_guzhanov
2007-05-03 16:46
2007.05.20
зависание при вставке записи в базу