Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Запуск .exe из html-страничек, внедренных в прогу на delphi

Автор: Lexa_AV
Дата сообщения: 23.07.2002 08:38
Во многих cdshell, написанных на delphi, производится запуск exe прямо из html. Если использовать WebBrowser, то он спрашивает "Блин! Так вы хотите выполнить EXE!!! Давайте его лучше сохраним на диске!". Как этого избежать??? Какой компонент для этого нужен??? Ведь делают как-то!

Всем заранее спасибо.
Автор: VolxV
Дата сообщения: 23.07.2002 09:04
Сервер какой?
Если Апач, то в файле "mime.types" убери строку
"application/octet-stream exe" и поставь "text/html exe". Вроде бы всё.
Автор: IntenT
Дата сообщения: 23.07.2002 09:05
Может я чего-то не понимаю, но мне кажется что просто перехватывают событие onClick и вместо стандартного обработчика лепят свой
Автор: The_Antihero
Дата сообщения: 25.07.2002 09:58
VolxV
насколько я понимаю, прога должна запускаться на машине юзера, а не на сервере.
IntenT

Цитата:
и вместо стандартного обработчика лепят свой

и что они там пишут?
Автор: VolxV
Дата сообщения: 25.07.2002 10:13
The_Antihero

Цитата:
прога должна запускаться на машине юзера

Без подтверждения пользователем это было бы нарушением безопасности. Вряд ли бывает. Если только в багах.
Автор: Wowik
Дата сообщения: 25.07.2002 10:33
VolxV
перечитай вопрос внимательно...

Lexa_AV
Делается это так: линки идут как в обычном хтмл
но при клике на линк принудительно в делфи подавляются все сообщения и производится запуск приложения
почитай MSDN про компонент WebBrowser там все написано как и что делать
Автор: Advanced_Guest
Дата сообщения: 25.07.2002 12:54
Тут ещё один вариат обнаружил
как можн запускать файлы .COM .EXE .BAT в internet Explorer не спрашивая ничего у пользователя...

Найдено на основе одного из дисков.
Суть такова:
1.При Автозапуске диска, запускается Autorun.exe
Autorun делает 3 вещи:
a)показывает Splash Screen
b)создаёт 2 ветви в регистре

Ветви таковы:

Код: [HKEY_CLASSES_ROOT\.hxh]
@="FunAndWork"
Автор: IntenT
Дата сообщения: 26.07.2002 09:16
The_Antihero

Цитата:
и что они там пишут?

Понятия не имею... Я очень поверхностно знаком с TWebBrowser
Автор: UncoNNecteD
Дата сообщения: 26.07.2002 16:23

Цитата:
The_Antihero

Цитата:и что они там пишут?

Понятия не имею... Я очень поверхностно знаком с TWebBrowser


IntenT
Дело не в TWebBrowser.
В обработчике пишут чтото типа WinExec($FILENAME,$MODE etc...);
Автор: Lexa_AV
Дата сообщения: 27.07.2002 11:04

Цитата:
Делается это так: линки идут как в обычном хтмл
но при клике на линк принудительно в делфи подавляются все сообщения и производится запуск приложения
почитай MSDN про компонент WebBrowser там все написано как и что делать


Мне понравилось. Расскажи поподробнее. MSDN читаю, пока что не допер...
Автор: IntenT
Дата сообщения: 27.07.2002 18:13
UncoNNecteD

Цитата:
В обработчике пишут чтото типа WinExec($FILENAME,$MODE etc...);

В чьем обработчике? В обработчике чего?
Как я представляю себе - это обработчик события onClick компонента TWebBrowser
Поправь меня, если я ошибаюсь
Автор: Lexa_AV
Дата сообщения: 27.07.2002 19:32
В том-то и гемор, что у TWebBrowser такого события (onClick) нет...

Я недавно въехал в курс дела - они используют компонент THTMLViewer, который умеет отображать веб-страницы на уровне наверное IE версии этак 2.0, но для простого оформления вроде бы хватает...
Автор: elvisti
Дата сообщения: 28.07.2002 00:01
Зачем такие сложности...Существует такая штука,как "Asynchronous Pluggable Protocols"...Например:ты создаешь протокол,например - "myprotocol://",далее пишешь rc-script,в который заносишь свой HTML документ,как ресурс;затем вызываешь его,и все локальные ссылки будут обрабатываться не как "file://" , а как "myprotocol://"...При этом web-browser выступит в роли Shell
Автор: Shpindler
Дата сообщения: 10.02.2004 00:33
А популярно объяснить как же всё таки это сделать кто то может ? Желательно пример ссылки/скрипта и т.д.

ЗЫ:
Цитата:
В HTML файле нужно дать ссылку на *.ехе файл таким манером чтобы диалог сохранить/открыть не появлялся , а сразу шла инстоляция , как это можно сделать ?


ЗЗЫ: нужно для авторана (без всяких там серверов внедрённых в дельфи на проге и других забубённых выражений )
Автор: Lexa_AV
Дата сообщения: 10.02.2004 16:20
В принципе, тут уже все популярно.
Я решил проблему так:


Цитата:
используют компонент THTMLViewer, который умеет отображать веб-страницы на уровне наверное IE версии этак 2.0, но для простого оформления вроде бы хватает...


THTMLViewer поищи через Яндекс.
Получается дешево и сердито
Автор: dalex3
Дата сообщения: 22.02.2004 02:51
Если нужно сделать меню для CD или чтото в етом роде, вот мой вариант:

в качестве проги я использую MicroWeb - http://www.indigostar.com/microweb.htm

Цитата:
MicroWeb allows you to create a working web site on a CD-ROM. Using a web browser, a user can run CGI programs as well as view html files on the CD-ROM.

а чтобы запустить программу простой PHP скрипт типа:
<? exec ('program name.exe'); ?>
Автор: speakerr
Дата сообщения: 23.02.2004 10:41
Lexa_AV

Цитата:
Во многих cdshell, написанных на delphi, производится запуск exe прямо из html. Если использовать WebBrowser, то он спрашивает "Блин! Так вы хотите выполнить EXE!!! Давайте его лучше сохраним на диске!". Как этого избежать???


можно так... на стандартном TWebBrowser:

Код:
uses
//...
ShellAPI;

type
TMainForm = class(TForm)
//...
StopBtn: TToolButton; // Action -> StopAction
//...
ActionList1: TActionList; // добавить StopAction
//...
var
bEXE : boolean;
sFilename : string;

procedure TMainForm.WebBrowser1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
var
ext : string;
begin
bEXE := false;
ext := ExtractFileExt(URL);
if ext = '.exe' then
begin
bEXE := true;
sFilename := URL;
exit;
end;
//...
end;

procedure TMainForm.WebBrowser1DownloadBegin(Sender: TObject);
begin
if bExe then exit;
//...
end;

procedure TMainForm.WebBrowser1DownloadComplete(Sender: TObject);
begin
if bExe then
begin
bNavigateComplete := true;
StopClick(self);
try
ShellExecute(
handle,
'open',
pchar(sFilename),
pchar(''),
'',
SW_SHOWDEFAULT);
finally
end;
exit
end;
//...
end;

Страницы: 1

Предыдущая тема: Где-бы взять доку по VBS, с примерами, и на рус.яз?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.