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

Вниз

Открыть с помощью...   Найти похожие ветки 

 
злобная танька   (2005-10-30 12:23) [0]

Привет!
как сделать чтобы прога появлялась в списке прог "открыть с помощью.."?


 
злобная танька   (2005-10-31 20:19) [1]

поясню маленько.. (мож ответят!)
моя прога - текстовый редактор типо блокнот (но круче). нужно чтобы она появлялась в "открыть с помощью" при нажатии правой кнопки мышы на файла txt и html рядом с блокнотом и эксплорером, но ети типы файлов не должны с ней ассоциироваться. т.е. при даблклике открывались бы блокнот или експлорер для txt или html соответственно. помогите! для меня реестр темный лес чесслово.


 
Игорь Шевченко ©   (2005-11-01 10:58) [2]

http://forum.oszone.ru/showthread.php?s=e93187269b4e442a376d034a2974f00c&t=54431

Яндекс - рулез фарева.

Правда почему-то большинство спрашивает, как удалить программы из этого списка :)


 
злобная танька   (2005-11-01 11:12) [3]

спасибо! но это немного не то (в конце вообще какой-то мрачный способ с фиктивными расширениями).

после вчерашний копаний в реестре наступило прозрение. если кому интересно вот шо получилось:

 
//процедура занесения в выпадающий список "Открыть с помощью ->"
//для файлов с расширением ext программы progname
procedure LinkWith(ext: string; progname: string);
 var
   i: integer;
   vl: TStringList;
 begin
   Reg.OpenKey("Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\." +
     ext + "\OpenWithList", true);
   vl := TStringList.Create;
   Reg.GetValueNames(vl);  

   for i := 0 to vl.Count-1 do      
     if (Reg.GetDataType(vl[i]) = rdString) then
       if Reg.ReadString(vl[i]) = progname then
       begin  
         //программа уже ассоциирована с этим типом файла
         Reg.CloseKey;
         Exit;
       end;

   if Reg.ValueExists("MRUList") then  
   begin
     MRU := Reg.ReadString("MRUList");
     if Length(MRU) > 0 then
       for i := 0 to Length(MRU)-1 do
         //ищем первую по алфавиту незанятую букву (которой нет в MRU):
         if Pos(Char(i + 97), MRU) < 0 then break;
   end
   else begin
     MRU := "";
     i := 0;
   end;

   Reg.WriteString(Char(i + 97), progname);
   MRU := MRU + Char(i + 97);
   Reg.WriteString("MRUList", MRU);
   Reg.CloseKey;
 end;


 
злобная танька   (2005-11-01 11:16) [4]

ох черт должно быть
 if Pos(Char(i + 97), MRU) < 1 then break;


 
Игорь Шевченко ©   (2005-11-01 11:29) [5]


> но это немного не то (в конце вообще какой-то мрачный
> способ с фиктивными расширениями).


Так собственно, в этом списке и есть программы, зарегистрированные для работы с определенными типами файлов. Путем регистрации программы для работы с неким расширением (пусть даже с фиктивным) эта программа появляется в списке. Я так понял :)

Про код ничего сказать не могу - его легче выбросить, чем понять.


 
злобная танька   (2005-11-01 15:49) [6]


> Про код ничего сказать не могу - его легче выбросить, чем
> понять.

хы хы
не знаю мне всё понятно!


 
злобная танька   (2005-11-01 15:58) [7]


> Путем регистрации программы для работы с неким расширением
> (пусть даже с фиктивным) эта программа появляется в списке

гм имелся ввиду немного другой список. тот который выпадающее подменю "Открыть с помощью ->" а не "Выбор программы..." Просто в Win98 эти вещи одинаково назывались и усё у меня перепуталось. прошу прощения.



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
2-1135035793
kizam
2005-12-20 02:43
2006.01.08
картинка на RichEdit-e


2-1135245369
Mahab
2005-12-22 12:56
2006.01.08
Копирование файлов


1-1134031227
DimonNew
2005-12-08 11:40
2006.01.08
Формат даты для "разных стран"


8-1123121461
Valera
2005-08-04 06:11
2006.01.08
Не подскажите формулу перевода из YUY2 в RGB формат?


2-1135139371
egorov paha
2005-12-21 07:29
2006.01.08
Sql в Delphi - неработают команды