Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 675

/ вопрос открыт /

Приветствую, уважаемые эксперты! Делаю оболочку для CD такую как у дисков Alex Soft, раньше я не знал как сделать чтобы открыть ссылку в веб браузере без запроса диалога загрузки, мне ответили я сделал, раньше при нажатии на ссылку выскакивал диалог "Открыть или сохранить", теперь сначала запускается приложение, а уже потом выскакивает этот диалог. Как сделать чтобы он не выскакивал вообще средствами Delphi. Я использую TWebbrowser (Delphi 6). Кстати я изучил оболочку от Alex Soft открыл её в Restorator и там написано, что она делалась на Delphi! Ниже представлен код, что надо дополнить, чтобы убрать диалог "Открыть Сохранить"?

Приложение:
  1. var
  2. bExe: Boolean;
  3. sFileName: string;
  4.  
  5. implementation
  6.  
  7. procedure TForm1.HtmlwiewBeforeNavigate2(Sender: TObject;
  8. const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
  9. Headers: OleVariant; var Cancel: WordBool);
  10. var
  11.  
  12. begin
  13. bExe:=false;
  14.  
  15. If ext='.exe' then
  16. begin
  17. bExe:=true;
  18. sFileName:=URL;
  19.  
  20. if bExe then
  21. begin
  22. try
  23. ShellExecute(Handle,'open',pchar(sFileName),pchar(''),nil,SW_SHOWDEFAULT);
  24. finally
  25. end;
  26. Cancel:=False;
  27. end;
  28. end;
  29.  
  30. end;
  31. end.


Slava_Tarasov Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Slava_Tarasov (статус: Посетитель)
Вопрос отправлен: 22 октября 2010, 23:21
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 5; последнее сообщение — 24 октября 2010, 15:31; участников в обсуждении: 2.
Вадим К

Вадим К (статус: Академик), 23 октября 2010, 16:45 [#1]:

А почему у Вас Cancel стоит как False? насколько я помню, он должен быть True. Что бы как бы отменить совершаемый переход.
Если это не поможет, то можно попробовать выставлять URL в виде URL исходной страницы или страницы "спасибо, что установили продукт:)".
Галочка "подтверждения прочтения" - вселенское зло.
Slava_Tarasov

Slava_Tarasov (статус: Посетитель), 23 октября 2010, 22:06 [#2]:

Спасибо! Изменил "Cancel как true" всё работает! теперь понятно как разработчики дисков Alex Soft делают свои оболочки для дисков! Только хотелось бы узнать как дополнить запуск не только exe файлов ну и например архив .rar, к примеру на диске будут распологаться не только файлы установки, но и архивы! Стоит воспользовать оператором "or" или как?
Вадим К

Вадим К (статус: Академик), 24 октября 2010, 13:33 [#3]:

не знаю, как Вы собрались применять оператор or, но на самом деле все очень просто. Вы можете сделать как Вам хочется - просто на странице, где нужно кликать, поставить ссылки на архивы. Так как используется ShellExecute, то будут открываться не только архивы, а и pdf документы, и вордовские, главное, что бы у пользователя были установлены соответствующие программы (Acrobat Reader, Microsoft Word, OpenOffice). Причем, будет открыто именно той программой, которая бы открыла этот файл двойным кликом в проводнике.

Естественно, если у пользователя не установлен архиватор WinRAR, и никакие другие программы не привязаны к этому расширению, то открыть не получится (скорее всего появится стандартный диалог выбора программы для открытия файла.
Галочка "подтверждения прочтения" - вселенское зло.
Slava_Tarasov

Slava_Tarasov (статус: Посетитель), 24 октября 2010, 14:00 [#4]:

Спасибо! Ну это понятно! А подскажите как можно узнать установлена ли на машине пользователя та или иная программа, например проверить установлен ли архиватор (любой не только win rar) т.е нужну найти в системе программу, которая способна открыть необходимый файл, чтобы, если при открытии архива и если не установлен в системе архиватор дать рекомендацию по установке архиватора и запустить программу установки! Наверное чтобы это реализовать нужна сложная функция...
Вадим К

Вадим К (статус: Академик), 24 октября 2010, 15:31 [#5]:

можно пойти прямым путем - просто посмотреть в реестре, есть ли привязка какой то программы к расширению rar (ну или zip - архивы ведь разные бывают). Правда иногда случается, что некоторые пользователи привязывают какие то "левые программы", но это отдельная история. Почитайте здесь - может и возникнут идеи, как узнать, какая программа привязана к расширению:))
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 12:03
Выполнено за 0.02 сек.