Текущий архив: 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.46 MB
Время: 0.008 c