Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.043 c
15-1177055145
pavel_guzhanov
2007-04-20 11:45
2007.05.20
Недавно я спрашивал про глюки у DVD-RW


15-1177202837
vasIZmax
2007-04-22 04:47
2007.05.20
Задачка


8-1157439275
ников
2006-09-05 10:54
2007.05.20
скорость мультипликации


2-1178270371
npu3pak
2007-05-04 13:19
2007.05.20
CheckListBox


3-1173159322
Atanas
2007-03-06 08:35
2007.05.20
Структура таблиц





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский