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

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

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

Delphi.int.ru Expert

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

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

#   

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


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

Подробнее »



Вопрос # 4 587

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

Здравствуйте!
Уважаемые эксперты я точно не знаю к какому разделу отнести свой вопрос, поэтому укажу его здесь. Вопрос такой: Покупая какой либо диск с софтом мы видим автозагрузку диска сделанную в разных программах, на некоторых autorun сделана оболочка со встроенной html страницей с ссылками на установку софта, нажимая на ссылки сразу начинается установка программы без вывода диалога "Открыть" "Сохранить". Когда я делаю такую автозагрузку, записываю на диск и пробую нажать на ссылки выскакивает этот диалог! Открыл html страницу в редакторе изучил теги ничего особенного не увидел! Как сделать что бы не было этого диалога? Помогите кто знает! Очень надо записать диск с html страницей! Заранее спасибо!!!

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

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


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

Всего сообщений: 10; последнее сообщение — 21 сентября 2010, 19:49; участников в обсуждении: 4.
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 19 сентября 2010, 11:52 [#1]:

Цитата (Slava_Tarasov):

Открыл html страницу в редакторе изучил теги ничего особенного не увидел!

Ну должно же быть какое-то отличие, раз у них работает, а у вас нет? :-)
Slava_Tarasov

Slava_Tarasov (статус: Посетитель), 19 сентября 2010, 14:03 [#2]:

Вот мне тоже очень интересно это узнать, где там отличия!
Slava_Tarasov

Slava_Tarasov (статус: Посетитель), 19 сентября 2010, 14:05 [#3]:

Почему то никто не отвечает на мой вопрос! Неужели никто не знает! :-)
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 19 сентября 2010, 19:32 [#4]:

Дык вы бы выложили оба варианта, а там посмотрим.
P.S. Вообще не приветствую оболочки в виде HTML. Они может и проще в реализации, но программа надёжнее.
Вадим К

Вадим К (статус: Академик), 20 сентября 2010, 16:32 [#5]:

А все очень просто. Обрабатывается событие OnNavigate. Там анализируется, куда хочет перейти броузер. Если это ссылка на программу (она не обязательно должна быть действительной!), то просто запускаем exe файл и не даем броузеру перейти.
Галочка "подтверждения прочтения" - вселенское зло.
Slava_Tarasov

Slava_Tarasov (статус: Посетитель), 20 сентября 2010, 21:07 [#6]:

Здравствуйте Вадим! Это значит вместо тэга (a Href=) нужно указать OnNavigate или как?
Вадим К

Вадим К (статус: Академик), 20 сентября 2010, 23:08 [#7]:

Нет. код ссылки должен выглядеть так
<a href="prog1.exe">крутая программа 1</a>
У webbrowser в инспекторе объектов находим на вкладке events событие OnNavigate (точно я его название не помню, может быть оно называется "OnBeforeNavigate").
Там есть два параметра - в одном передается адрес страницы, на которую броузер пытается перейти - его берем и анализируем. Второй параметр имеет приставку var - то есть его можно модифицировать и вызывающий код узнает об этом. Я не помню имя этого параметра, но там по названию понятно. Он булевой и если правильно выставить ему значение, то можно не дать броузеру идти дальше.

Итого, алгоритм. Смотрим на ссылку. Если правильная - пусть идет дальше, нет - запускаем прогу и не даем идти дальше.
Галочка "подтверждения прочтения" - вселенское зло.
DNK

DNK (статус: Студент), 21 сентября 2010, 09:18 [#8]:

type TWebBrowserBeforeNavigate2 = procedure(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant; var Flags: OleVariant; var TargetFrameName: OleVariant; var PostData: OleVariant; var Headers: OleVariant; var Cancel: WordBool) of object;

property OnBeforeNavigate2: TWebBrowserBeforeNavigate2;
"Digital Networked Knight"
Вадим К

Вадим К (статус: Академик), 21 сентября 2010, 10:12 [#9]:

вот, теперь даже код могу набросать (это пример!!!, он не гарантировано рабочий)
if (ExtractFileExt(URL) = '.exe' ) then begin //то есть это исполняемый файл
WinExec(URL, 0);//тут можно (и нужно) применять и другие методы запуска
cancel:=False; // дальше не переходить
end;
конечно, нужно убедиться, что в URL будет такой путь, что его можно будет "исполнить", если же нет, то кто мешает его модифицировать:)
Галочка "подтверждения прочтения" - вселенское зло.
Slava_Tarasov

Slava_Tarasov (статус: Посетитель), 21 сентября 2010, 19:49 [#10]:

Спасибо большое за предложенные варианты буду пробовать, надеюсь получится!

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

Версия движка: 2.6+ (26.01.2011)
Текущее время: 29 мая 2023, 18:04
Выполнено за 0.03 сек.
Рейтинг@Mail.ru