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

Вниз

Открывать txt моей программой   Найти похожие ветки 

 
acsoft ©   (2004-11-06 13:42) [0]

Хочу, чтобы текстовые файлы открывались не Блокнотом, а моей программой. Для этого пишу так:
 reg:=TRegistry.Create;
 try
    reg.RootKey:=HKEY_CLASSES_ROOT;
    reg.OpenKey("txtfile\shell\open\command",True);
    reg.WriteString("","C:\Windows\system32\NP.exe "%1"");
 finally
    Reg.CloseKey;
    Reg.Free;
 end;
Но это изменение реестра позволяет добавить программу только в список "Открыть с помощью", а по умолчанию тексты все-равно открываются блокнотом.
Что делать? (кроме удаления блокнота :))
Что еще надо поменять в реестре?


 
debuger ©   (2004-11-06 15:46) [1]

если сделал правильно, то больше ниче менять не нада.


 
Wish ©   (2004-11-06 16:14) [2]

Эта наверна из-за WindowsXP.

> (кроме удаления блокнота :))

А ты попробуй - удали. Он снова появится, знаю из личного опыта, я тоже создавал текстовой редактор.


 
acsoft ©   (2004-11-06 18:27) [3]

Я вообще так посмотрел - в реестре записей эдак 5 о моей программе появляется (и это не в дублирующих ветках)... а я только один ключ меняю, даже просто один параметр...
Интересно как под другими операционками...


 
acsoft ©   (2004-11-06 18:55) [4]

Вот еще - если в "свойствах папки/Типы файлов" установить для txt мою программу, то все работает! (когда первый раз открыл там блокнот значился, несмотря на то, что ключ "txtfile\shell\open\command" был уже изменен)
Попытался отследить какие измененния в реестре происходят при замене Блокнота на мою программу - ничего не заметил, не может же быть, чтобы такие данные хранились не в реестре...
Где они хранятся-то?


 
abc   (2004-11-06 19:42) [5]

Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey(".BMP" , True);
Reg.WriteString("", "BMPfile");
Reg.CloseKey;

Reg.CreateKey("BMP"+"file_cyd");
Reg.OpenKey("BMPfile\DefaultIcon", True);
Reg.WriteString("", Application.ExeName + ",0");
Reg.CloseKey;
Reg.OpenKey("BMPfile\shell\open\command", True);
Reg.WriteString("", Application.ExeName + " "%1"");
Reg.CloseKey;
Reg.Free;
может это поможет


 
acsoft ©   (2004-11-09 11:55) [6]

Cпасибо, но это просто расширенная версия того, что я уже написал - просто назначается еще иконка дефолтовая, да предусмотрен блок на случай, если винда не знает, что это за файлы такие BMP (или TXT в моем случае)...

Может вышедшие сегодня на работу (на бесплатный инет:)) мастера помогут мне.

Вообщем смотрите
1) Я тут взял поставил через Virtual Machine себе еще одну операционку - свежий XP. Так вот если под свежими виндами запустить мою программу с тем же кодом - то все Ок, тексты сразу начинают открываться в моей программе.
2) Дальше, хочу например деинсталлировать все моё, вернуть опять блокнот. Для этого возвращаю параметру "txtfile\shell\open\command" его первоначальное значение %SystemRoot%\system32\NOTEPAD.EXE %1 (просто вручную). При попытке запуска текстовых файлов обнаруживается ошибка.
3) Пытаюсь исправить - залезаю в свойства папки/типы файлов. Вижу, что тем же *.txt не сопоставлено никакого приложения (но я же вернул параметр к прежнему значению..). Хорошо... сопоставляю блокнот опять. Все работает.
4) Снова инсталлирую свою прогу. И на этом всё - винда ни в какую не хочет снова открывать тексты моей программой - только блокнотом. Приходится опять лезть в свойства папки/типы файлов, там менять блокнот на мою. И опять все работает. Но хочется же автоматически все делать - почему на свежей винде все сразу как надо работает, а на той, где уже менялось что-то, нет?

Короче, что я хочу выяснить - куда сохраняются данные из "свойства папки/типы файлов"?


 
acsoft ©   (2004-11-09 11:57) [7]

lkll


 
acsoft ©   (2004-11-11 11:51) [8]

...



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

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

Наверх




Память: 0.49 MB
Время: 0.024 c
4-1100012575
landy
2004-11-09 18:02
2004.12.26
Короткий горизонтальный скроллбар


1-1102503215
Provodnick
2004-12-08 13:53
2004.12.26
Отключение Cntrl+Tab в MDI-формах.


4-1100017871
ser_ega
2004-11-09 19:31
2004.12.26
Количество файлов в папке!


3-1101295409
VitaWED
2004-11-24 14:23
2004.12.26
Название столбца.


1-1102668654
msm
2004-12-10 11:50
2004.12.26
Проблема с TDateTime