Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 662

•  TDictionary Custom Sort  6 668

•  Fast Watermark Sources  6 449

•  3D Designer  9 382

•  Sik Screen Capture  6 783

•  Patch Maker  7 191

•  Айболит (remote control)  7 180

•  ListBox Drag & Drop  6 029

•  Доска для игры Реверси  97 652

•  Графические эффекты  7 354

•  Рисование по маске  6 655

•  Перетаскивание изображений  5 512

•  Canvas Drawing  5 895

•  Рисование Луны  5 637

•  Поворот изображения  5 124

•  Рисование стержней  3 717

•  Paint on Shape  2 928

•  Генератор кроссвордов  3 832

•  Головоломка Paletto  3 069

•  Теорема Монжа об окружностях  3 881

•  Пазл Numbrix  2 553

•  Заборы и коммивояжеры  3 293

•  Игра HIP  2 258

•  Игра Go (Го)  2 181

•  Симулятор лифта  2 574

•  Программа укладки плитки  2 188

•  Генератор лабиринта  2 691

•  Проверка числового ввода  2 339

•  HEX View  2 675

•  Физический маятник  2 325

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Получить приложение, ассоциированное с указанным расширением файлов



Оформил: DeeCo

{ 
  FindExecutable returns the name and handle to the executable 
  (.EXE) file associated with a specified file type (.BMP) 
}

 { 
  Wenn du z.B eine BMP-Datei anklickst, wird die 
  dazugehorige Anwendung MSPAINT.EXE mit der Datei als 
  Parameter ausgefuhrt. In diesem Beispiel wird 
  herausgefunden, welche Anwendung (hier MSPAINT.EXE) 
  mit dem jeweiligen Datei Typ verknupft ist. 
}


 function ShellFindExecutable(const FileName, DefaultDir: string): string;
 var
   Res: HINST;
   Buffer: array[0..MAX_PATH] of Char;
   P: PChar;
 begin
   FillChar(Buffer, SizeOf(Buffer), #0);
   if DefaultDir = '' then P := nil
    else
      P := PChar(DefaultDir);
   Res := FindExecutable(PChar(FileName), P, Buffer);
   if Res > 32 then
   begin
     P := Buffer;
     while PWord(P)^ <> 0 do
     begin
       if P^ = #0 then // FindExecutable replaces #32 with #0 
        P^ := ' ';
       Inc(P);
     end;
     Result := Buffer;
   end
    else
     Result := '';
 end;

 // Example, Beispiel: 

procedure TForm1.Button1Click(Sender: TObject);
 begin
   ShellFindExecutable('1stboot.bmp', 'c:\windows');
 end;