кроссплатформенный KISS гуй
От: _Winnie Россия C++.freerun
Дата: 12.11.05 10:01
Оценка:
Как сделать так — пользователь нажимает ссылку на html страничке, запускается внешняя программа, рожает новый html файл, браузер переходит на него?

PS. предлагать пользователю установить апач не предлагать.
Хотя да, можно написать локальный HTTP сервер, но это уже не KISS и некросплатформенно. И неудобно для пользователя, может вызвать кучу проблем.
Правильно работающая программа — просто частный случай Undefined Behavior
Re: кроссплатформенный KISS гуй
От: Mamut Швеция http://dmitriid.com
Дата: 12.11.05 16:58
Оценка:
_W>Как сделать так — пользователь нажимает ссылку на html страничке, запускается внешняя программа,

Какая такая внешняя программа? Кто ее устанавливать будет? С браузером регистрировать?


dmitriid.comGitHubLinkedIn
Re[2]: кроссплатформенный KISS гуй
От: _Winnie Россия C++.freerun
Дата: 12.11.05 18:47
Оценка:
Здравствуйте, Mamut, Вы писали:

_W>>Как сделать так — пользователь нажимает ссылку на html страничке, запускается внешняя программа,


M>Какая такая внешняя программа?

Моя!

>Кто ее устанавливать будет?


Кто угодно — пользователь или инсталлер?

Можно и не уставливать.
Приложение — для windows (бинарник + index.html), для unix — (.cpp файл, +index.html) и может быть даже никаких сторонних либ. GUI via браузер пользователя.

>С браузером регистрировать?

В том то и дело, что мне почему-то везде советую регистрировать протокол winnie://. либо писать свой http сервер.
Правильно работающая программа — просто частный случай Undefined Behavior
Re[3]: кроссплатформенный KISS гуй
От: Mamut Швеция http://dmitriid.com
Дата: 12.11.05 22:02
Оценка:
_W>>>Как сделать так — пользователь нажимает ссылку на html страничке, запускается внешняя программа,

M>>Какая такая внешняя программа?

_W>Моя!

>>Кто ее устанавливать будет?


_W>Кто угодно — пользователь или инсталлер?


_W>Можно и не уставливать.

_W>Приложение — для windows (бинарник + index.html), для unix — (.cpp файл, +index.html) и может быть даже никаких сторонних либ. GUI via браузер пользователя.

>>С браузером регистрировать?

_W>В том то и дело, что мне почему-то везде советую регистрировать протокол winnie://. либо писать свой http сервер.


Правильно советуют Потому что:

Как сделать так — пользователь нажимает ссылку на html страничке, запускается внешняя программа, рожает новый html файл, браузер переходит на него?


Делается только путем регистрации своего протокола с ИЕ (как это делается с ФФ и Оперой — не знаю) или написанием своего плагина.

Пример протокола: telnet://prompt.franz.com (открывает соединение по протоколу Телнет с LISP REPL на franz.com)
Пример плагина: http://www.rsdn.ru:80/File/9088/lisp_style_tutorial.pdf (ИЕ и ФФ должні откріть внутри браузера или, если изменені настройки, то предложить открыть файл.)

А по-другому — никак.


dmitriid.comGitHubLinkedIn
Re: кроссплатформенный KISS гуй
От: Кодт Россия  
Дата: 13.11.05 13:07
Оценка: +1
Здравствуйте, _Winnie, Вы писали:

_W>PS. предлагать пользователю установить апач не предлагать.

_W>Хотя да, можно написать локальный HTTP сервер, но это уже не KISS и некросплатформенно. И неудобно для пользователя, может вызвать кучу проблем.

Интересно! Запустить стороннюю программу (фактически, CGI) напрямую — это кроссплатформенно, а HTTP-сервер — уже нет.

Как раз свой сервер — это более переносимое решение, потому что
* не привязывается к браузеру
* не является дырой в безопасности (а то нашлись бы такие умники — давать ссылки на format c: /y)

Существуют готовые локальные серверы — в том числе не требующие инсталляции. Запускается такая приблуда из autorun.inf и можешь смотреть содержимое сидюка в динамике
А дальше — подцепляешь свою программу как CGI и будет тебе щасте.
Перекуём баги на фичи!
Re[2]: кроссплатформенный KISS гуй
От: _Winnie Россия C++.freerun
Дата: 14.11.05 20:20
Оценка:
Вы все нытики и ослики Иа-Иа >_<

Конкретный вопрос. Как заставить FireFox когда открываю файл локально предложить его "скачать/открыть"? Он почему-то сразу его открывает как текстовый :/

А мне надо его "запустить", нажав галочку "не спрашивать больше для этого расширения".

PS. Сунул внутри него бинарник(название не менял). Стал предлагать сохранить. FireFox что, парсит файл перед сохранением что бы отличать их друг от друга? :/

Однако, почему-то галочка "больше не спрашивать про это расширение" не активна. Почему?
Правильно работающая программа — просто частный случай Undefined Behavior
Re: кроссплатформенный KISS гуй
От: UJey Украина  
Дата: 15.11.05 11:58
Оценка:
Здравствуйте, _Winnie, Вы писали:

_W>Как сделать так — пользователь нажимает ссылку на html страничке, запускается внешняя программа, рожает новый html файл, браузер переходит на него?


_W>PS. предлагать пользователю установить апач не предлагать.

_W>Хотя да, можно написать локальный HTTP сервер, но это уже не KISS и некросплатформенно. И неудобно для пользователя, может вызвать кучу проблем.

Как насчет JavaScript?
Re[3]: кроссплатформенный KISS гуй
От: Sinclair Россия https://github.com/evilguest/
Дата: 17.11.05 06:56
Оценка: 2 (1)
Здравствуйте, _Winnie, Вы писали:
_W>Вы все нытики и ослики Иа-Иа >_<
Это ты нытик. Мы просто, в отличие от тебя, хорошо представляем себе, как работает связка браузер-протокол-сервер.
_W>Конкретный вопрос. Как заставить FireFox когда открываю файл локально предложить его "скачать/открыть"? Он почему-то сразу его открывает как текстовый :/
Потому, что протокол обязан предоставить браузеру MIME-тип открываемого документа. В зависимости от этого типа происходят различные действия.
Протокол HTTP передает MIME в заголовках, протокол File — нет.


_W>PS. Сунул внутри него бинарник(название не менял). Стал предлагать сохранить. FireFox что, парсит файл перед сохранением что бы отличать их друг от друга? :/

Большинство браузеров научены горьким опытом не слишком доверять MIME-типу, отданному протоколом. Поэтому они учитывают также
а) расширение файла (точнее, расширение URL к этому файлу, независимо от протокола)
б) небольшую часть заголовка файла.
Именно благодаря этому браузер никогда не перепутает gif c jpeg, даже если переименовать файл.

_W>Однако, почему-то галочка "больше не спрашивать про это расширение" не активна. Почему?

Потому, что он определил тип не по расширению.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.