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

Вниз

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

 
злобная танька   (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 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
14-1134536760
vajo
2005-12-14 08:06
2006.01.08
антивирусы


2-1134755148
kami
2005-12-16 20:45
2006.01.08
Баальшие проблемы с TListView :(


14-1134710833
Pazitron_Brain
2005-12-16 08:27
2006.01.08
Все, что вы хотели знать о спутниковом Интернете


2-1134898227
з. танька
2005-12-18 12:30
2006.01.08
TWebBrowser


2-1135078221
Crass
2005-12-20 14:30
2006.01.08
Скопировать фрагмент файла в новый файл





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский