Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > как локально из html запустить exe


Автор: h2o 29.1.2007, 11:14
Добрый день, может я не по адресу обратился, но вопрос у меня такой:

Я для компакт диска сделал автозапуск ввиде html странички, в которой говорится типа "хотите установить супер крутую программу?" и ссылка на exe файлик. если по ней тыкнуть то выводится стандартное окно: "что делать?" и варианты "Открыть", "Сохранить", "Отмена", как будто я этот фаил с инета загружаю.

А как сделать так чтобы когда я нажимал ссылку, у меня сразу ехе фаил запускался, без этого ненужного окна с вариантами?

кто-то мне подсказал что нужно что-то на  Java прописать и всё будет ок!

народ, помогите решить проблему! заранее спасибо.

если я не по адресу... админы, переместите вопрос в нужную тему плиз, а то непонимаю где его задать!

Автор: LSD 29.1.2007, 11:19
Модератор: перемещено из Java: Общие вопросы

Автор: Sardar 29.1.2007, 12:05
В самом низу страницы куча тем "А здесь смотрели?", там ответ. Предупреждение, пользуйся поиском. Через два дня убью топ.

M
Sardar
Тема остаёться из-за ссылок на MSDN и ответ ранее. Это последняя тема о том как запустить .exe под виндой. Новые способы убиваться не будут

Автор: h2o 29.1.2007, 12:26
Цитата(Sardar @  29.1.2007,  12:05 Найти цитируемый пост)
В самом низу страницы куча тем "А здесь смотрели?", там ответ. Предупреждение, пользуйся поиском. Через два дня убью топ. 


ну ненадо тут предупреждений...

как уже заметили:
Цитата(LSD @  29.1.2007,  11:19 Найти цитируемый пост)
Модератор: перемещено из Java: Общие вопросы 


а там я такого не видел! а тут не догадался посмотреть! виноват...

и по найденому вопросы:

1. а в каких версиях ie скрипт из ссылки http://forum.vingrad.ru/topic-131269.html
будет работать? мне нужно чтобы под все windows работало (98-ХР), а у них версии ie разные. 

2. а могу ли я этим скриптом Word_овские файлы запускать? тоесть пофиг какое у файлов расширение, они тоже будут запускаться?

Автор: Sardar 29.1.2007, 12:47
Цитата(h2o @  29.1.2007,  11:26 Найти цитируемый пост)
а в каких версиях ie скрипт из ссылки http://forum.vingrad.ru/topic-131269.html
будет работать?

Везде где стоит Windows Scripting Host (WSH). Из веба не будет работать, но с диска по идее должно. Вариант Java точно нигде работать не будет. Курить http://msdn2.microsoft.com/en-us/library/aew9yb99.aspx, http://msdn2.microsoft.com/en-us/library/d5fk67ky.aspx, http://msdn2.microsoft.com/en-us/library/ateytk4a.aspx.

Добавлено @ 12:49 
Цитата(h2o @  29.1.2007,  11:26 Найти цитируемый пост)
2. а могу ли я этим скриптом Word_овские файлы запускать? тоесть пофиг какое у файлов расширение, они тоже будут запускаться?

Поищи по msdn, помню был метод то ли shell, то ли у FileSystemObject что бы открывать файл прогой по ассоциации, правда работало оно по расширению по моему.

Автор: h2o 29.1.2007, 17:02
спасибо! вроде работает...

Автор: h2o 26.2.2007, 09:23
Народ опять проблемыю Не могу сделать чтобы без вопросов запускалась презентация PowerPoint (файлы с расширением ppt). Ни как не получается ни одним из методов (ну скорее всего так как я в этом нифига не шарю я просто что-то не так делал)
пробовал WshShell, Run, Exec.б включал их и просто в head в script и в процедурыб и нифига не получилось!

Народ помогите по сабжу плиз! я в этом не шарю и разобраться сам не смогу!

Автор: h2o 28.2.2007, 09:19
вообщем всё не так! 

код, из ссылки http://forum.vingrad.ru/topic-131269.html
не работает никак ВООБЩЕ!
у меня ХР SP2 и код работает только если запускаемый ехе фаил находится в папке %Windir%, или её подпапках, а если он находится в любом другом диске или папке... КОД НЕ РАБОТАЕТ!!!

я свой ехе и презентацию ppt копирую в %Windir%, и оба отлично запускаются! но мне то нужно чтобы с CD-диска запускалось!!! и если пользоваетль захочет себе это например в "d:\Программа презентации"
скопировать с CD-диска, нужно чтобы тоже работало!!!

Народ! плиз, срочно, очень срочно нужно! помогите!!!

Автор: Sardar 28.2.2007, 14:20
h2o, это всё попытки SP2 сделать IE чуточку безопасней. Ищи как это обойти на http://msdn2.microsoft.com/ru-ru/default.aspx если это вообще можно обойти. Также можно попробовать запаковать в .mht вместе с .ppt, может быть не спросит при открытии.

Автор: JSman 1.3.2007, 10:53
Цитата(h2o @  28.2.2007,  09:19 Найти цитируемый пост)
 КОД НЕ РАБОТАЕТ!!!


понятное дело.  
метод Run имеет по умолчанию папку system32 и %WINDIR%, поэтому надо указывать полный путь.
напишу ниже, как это сделать

Цитата(Sardar @  28.2.2007,  14:20 Найти цитируемый пост)
Также можно попробовать запаковать в .mht вместе с .ppt, может быть не спросит при открытии.


спросит.


Автор: h2o 1.3.2007, 11:59
JSman , а можно по подробней, или примерчик в виде html странички

я в этом вообще нифига не понимаю, соответственно не понял что ты сказал...

Автор: JSman 2.3.2007, 13:27
Код
<head>
<script>

    function Application_getPath() {

    var s=location.href;
    var re=/\//g;

s = unescape(s);
s = s.replace(re,'\\');

if (s.indexOf('res:\\')!=-1) {
    s=s.substr(0, s.lastIndexOf('\\'));
}

if (s.indexOf('\\\\')!=-1) {
    re = /.*\\\\/;
    s=s.replace(re,'');
}

return s;        
        
        
}

    
    function Application_getFolder() {
    
    var s = Application_getPath();

    s = s.substr(0,s.lastIndexOf('\\'));
    return s;        
        }


function getFolder(s){
var re=/\//g;

s=s.replace(re,'\\');
s=s.substr(0, s.lastIndexOf('\\') + 1);

return s;
}

function exec(arg){
var s=arg.href;

s = s.substr(getFolder(location.href).lastIndexOf('\\')+1);

oShell.Run(Application_getFolder() + "\\" + s);
}

function detectLink() {
if (event.srcElement.tagName=="A"&&event.srcElement.className=="program")
exec(event.srcElement); 
return false;

}

document.attachEvent("onclick",detectLink);

</script>
</head>

<body>
<object classid="clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B" id="oShell"></object>
<a href="программа_из_той_же_папки_где_hta.exe" class="program">калькулятор))</a>
</body>



изменил под тебя. если какие-то вопросы возникнут обращайся


M
Sardar
JSman, ты же здесь не в первый раз, оборачивай код в теги.

Автор: JSman 7.3.2007, 14:05
может возникнуть проблема с запуском файлов с параметрами. можно ее по-простому решить так:

накладываем ограничение на href, а именно путь к программе + имя запускаемого файла НЕ должны включать в себя символ пробела. Пробел будет отделять путь запускаемого файла и параметры.

переписываем function exec.


Код

function exec(arg){

var s = arg.href.substr(getFolder(location.href).lastIndexOf('\\')+1).replace(/%20/g,'" "')+'"';
oShell.Run('"'+Application_getFolder() + "\\" + s);

}


Автор: Sardar 7.3.2007, 19:48
Цитата(JSman @  7.3.2007,  13:05 Найти цитируемый пост)
а именно путь к программе + имя запускаемого файла НЕ должны включать в себя символ пробела

Если обобщить, то видим что требуется URL, в котором масса символов не допустимы. Вместо замены единственного пробела пользуемся функцией escape(str).

Автор: JSman 9.3.2007, 01:36
говоря об именах файлов, все проще конечно, хотя действительно поддерживаю использование функции unescape как обобщение. 

я думаю, что эта тема классная, думаю имеет смысл с редактированием перенести ее в раздел "JavaScript: Наши скрипты", я думаю, что она актуальна.

Автор: Sardar 9.3.2007, 02:11
Не стоит. Реально, слишком не опробованный код, не уверен что будет работать реально "везде". Также к JS не особо относиться. При создании темы человек по любому получит список "а здесь смотрели" если будут слова "запустить" и "exe" в названии.

Автор: h2o 9.3.2007, 09:07
Sardar, поддерживаю JSman тема реально нужная. Её бы хоть в факи запехать. Я когда в инете искал про запуск файлов, нифига не нашел... потом пришел сюда на родной форум! и тут вот JSman ответил! мне кажется много кто ищет решение подобного плана. 
По поводу опробованности кода: у себя на XP SP2 я опробовал, всё работает, запускаются и ехе файлы и файлы программ по ассоциациям (я на MS Office 2003 документах пробовал (word, excel, PowerPoint)). Но есть 2 глюка. точнее не глюки а наверно просто так не работает:
если ссылка типа: <a href=...><font ....>Запуск</font></a> - то не работает!
если ссылка типа: <font ....><a href=...>Запуск</a></font> - то работает!
почему-то когда изменяешь внутри ссылки шрифт, ссылка перестает работать.
и ещё, может я не так сделал, но у меня не получилось заставить ссылки на страницы вместе с сылками на файлы в одном документе работать! ну я просто фрэймами сделал и не стал париться!

щас ещё в 2000й винде на нескольких компах проверю и отпишусь сюда о результатах!

Автор: JSman 10.3.2007, 17:08
использование ActiveX предполагается только на движке ie. и то это делают в служебных целях. 


Цитата(Sardar @  9.3.2007,  02:11 Найти цитируемый пост)
 к JS не особо относиться


плохо, что писатели скриптов забывают классную технологию JScript. очень плохо. И вообще само понятие сценарного языка шире, чем понятие "Разработка систем для Web "

h2o, знаешь, ты прав. многие этим начинают заморачиваться, когда встретятся с HTML Application. Я не исключение. И скоро открою свой сайт, где покажу насколько может быть широко применение скриптов и страниц в качестве оформления пользовательского интерфейса. покажу как можно в два счета создавать такие класссные доклеты как на маке, используя только JS и HTML. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)