Форум: "Начинающим";
Текущий архив: 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.057 c