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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
15-1207903917
Simpson
2008-04-11 12:51
2008.05.25
Что такое стартап?


15-1207991877
@!!ex
2008-04-12 13:17
2008.05.25
Запрет запуска приложений


15-1208107582
Дмитрий С
2008-04-13 21:26
2008.05.25
Нормальная java-аська


3-1198050542
Андрей Пл
2007-12-19 10:49
2008.05.25
не выполняеться запрос типа select * , device from BRIEFCASE


15-1207811360
Ega23
2008-04-10 11:09
2008.05.25
FastCGI и Delphi - возможно или нет?