Форум: "Начинающим";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
ВнизAPI-функция извлечения рекомендуемых программ Найти похожие ветки
← →
NieL (2008-05-03 10:43) [0]Народ, подскажите API функцию которая определяет рекомендуемые программы для открытия файла. (т.е. там где "Открыть с помощью" )
← →
DVM © (2008-05-03 11:12) [1]
> подскажите API функцию
RegQueryValue
← →
NieL (2008-05-03 11:20) [2]Если несложно, напишите небольшой примерчик. Заранее благодарен.
← →
palva © (2008-05-03 11:39) [3]Вот здесь есть примерчик использования этой функции
http://www.swissdelphicenter.ch/torry/showcode.php?id=1431
← →
NieL (2008-05-03 17:50) [4]Вот набросал тут. С реестром никогда не приходилось работать так что возможно где-то ошибаюсь. Пока получилось извлекать только программу открывающую файл по умолчанию. а как вывести весь список программ. (например расширение *.doc)
procedure TForm1.Button3Click(Sender: TObject);
function GetDefaultKey(const Ext: string): string;
var
Size: LongInt;
Hk: HKEY;
Buf: PChar;
begin
Result := "";
if RegOpenKey(HKEY_CLASSES_ROOT, PChar(Ext), Hk) = 0 then
begin
Size := SizeOf(PChar);
if RegQueryValue(Hk, nil, Buf, Size) = ERROR_MORE_DATA then
begin
GetMem(Buf, Size);
try
RegQueryValue(Hk, nil, Buf, Size);
Result := string(Buf);
finally
FreeMem(Buf);
end;
end;
end;
RegCloseKey(Hk);
end;
function GetProgramAssociation(DefKey: string): string;
var
Size: LongInt;
Hk: HKEY;
Buf: PChar;
begin
Result := "";
if RegOpenKey(HKEY_CLASSES_ROOT, PChar(DefKey + "\shell\open\command"), Hk) = 0 then
begin
Size := SizeOf(PChar);
if RegQueryValue(Hk, nil, Buf, Size) = ERROR_MORE_DATA then
begin
GetMem(Buf, Size);
try
RegQueryValue(Hk, nil, Buf, Size);
Result := string(Buf);
finally
FreeMem(Buf);
end;
end;
end;
RegCloseKey(Hk);
end;
var
S: string;
begin
{ S := GetProgramAssociation(GetDefaultKey(".doc")); }
S := GetProgramAssociation("Paint.Picture");
ShowMessage(S);
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c