С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript: Фреймворки
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090

Создать Windows приложение на JavaScript

14.09.2018, 22:29. Показов 3343. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Никак не найду решение простой, казалось бы, задачи. Мне надо создать простенькую программку для Windows. Писать я умею только на JS. Соответственно, мне нужна какая-то SDK, которая позволит реализовать задуманное. И, к моему удивлению, найти что-то подходящее оказалось совсем не просто. Собственно, в этом и заключается проблема. Нашёл два, как говорят, похожих варианта: electron и nw.js. Первую, как это не смешно, я просто не нашёл, как установить на Windows. Вторую поставил, но, как по мне, так это полная фигня. Потому что скомпилированный Hello World у неё представляет собой папку с кучей файлов, размером в 160 мегабайт. Подозреваю, что там виртуалка, в которой и запускается приложение. Я с таким же успехом могу отдельный браузер поставить, и стартовой страницей сделать свою прогу
Мне нужно, чтобы на выходи был всего один exe файлик, размером в пару мегабайт, который запустится на любом ПК с Windows как любая обычная программа, без установки всякой дополнительной лабуды. Как мне это сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.09.2018, 22:29
Ответы с готовыми решениями:

Создать Windows-приложение
Используя компонент MainMenu, создать Windows-приложение для решения уравнения qx3 +px2=0;

Создать многооконное Windows-приложение
Помогите пожалуйста сделать! Вроде бы с другого языка надо переписать.... Создать многооконное Windows-приложение, в меню которого должны...

Как создать Windows приложение
Требуется создать Windows приложение на Visual Basic 6! Где на панели Windows приложение не могу найти! Есть текст кода Програмний код...

15
Модератор
 Аватар для Curry
5153 / 3466 / 536
Регистрация: 01.06.2013
Сообщений: 7,528
Записей в блоге: 9
14.09.2018, 22:39
Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
Мне нужно, чтобы на выходи был всего один exe файлик, размером в пару мегабайт, который запустится на любом ПК с Windows
А это не может быть файл с расширением .hta который запускается на любой современной винде без всяких дополнительных фреймвёрков?
0
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090
14.09.2018, 22:58  [ТС]
Curry, а в этом файле можно указать, например, начальный размер окна, его положение, возможность ресайза, и т.п? Или, можно ли в него упаковать иконки? Мне все эти функции нужны. И я не хочу, чтобы вид и функционал приложения зависел от версии установленного ie.
0
Модератор
 Аватар для Curry
5153 / 3466 / 536
Регистрация: 01.06.2013
Сообщений: 7,528
Записей в блоге: 9
14.09.2018, 23:35
Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
а в этом файле можно указать, например, начальный размер окна, его положение, возможность ресайза, и т.п?
Разумеется. В атрибутах тега HTA:APPLICATION. По ссылке же всё написано.
В английской версии вики как раз и приведена картинка HTA приложения с окном похожем на обычное.
0
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090
15.09.2018, 07:32  [ТС]
Curry, ну, допустим, что я могу разместить все нужные изображения в base64. Но с иконкой приложения такое не прокатит, там надо указать путь с ico файлу.
И, повторюсь, я боюсь, что такое приложение будет выглядеть и вести себя по-разному на разных версиях Windows.
И ещё, я не нашёл, может ли такая программа писать в реестр и в файловую систему. И как, вообще, она взаимодействует с ОС?
0
Модератор
 Аватар для Curry
5153 / 3466 / 536
Регистрация: 01.06.2013
Сообщений: 7,528
Записей в блоге: 9
15.09.2018, 11:09
Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
с иконкой приложения такое не прокатит, там надо указать путь с ico файлу.
Сделайте дистрибутив вашего приложения. Все нужные файлы вместе с .hta распаковать на компьютер пользователя.
Можно всё сделать только с помощью hta и архиватора поддерживающего создание самораспаковывающихся архивов.
Можно сделать такой архив (.exe), который при запуске распакует всё, например, в директорию для временных файлов, потом запустит указанный hta, после выполнения удалит что распаковал.
Какой именно архиватор использовать для создания sfx архивов лучше отдельно спросить в подходящей ветке. Я пользовался HaoZip, но на его сайт сейчас антивирусы ругаются.

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
я боюсь, что такое приложение будет выглядеть и вести себя по-разному на разных версиях Windows.
Выглядят приложения windows в разных версиях и так по разному - заголовки например.
Hta будет различаться не более чем другие приложения.

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
И ещё, я не нашёл, может ли такая программа писать в реестр и в файловую систему.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function writeInRegistry(sRegEntry, sRegValue)
{
  var regpath = "HKEY_LOCAL_MACHINE\\Software\\CompanyName\\CompanyValues\\" + sRegEntry;
  var oWSS = new ActiveXObject("WScript.Shell");
  oWSS.RegWrite(regpath, sRegValue, "REG_DWORD");
}
 
function readFromRegistry(sRegEntry)
{
  var regpath = "HKEY_LOCAL_MACHINE\\Software\\CompanyName\\CompanyValues\\" + sRegEntry;
  var oWSS = new ActiveXObject("WScript.Shell");
  return oWSS.RegRead(regpath);
}
 
function tst()
{
  writeInRegistry("Version", "101");
  alert(readFromRegistry("Version"));
}
https://www.researchgate.net/p... plications
1
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090
16.09.2018, 09:49  [ТС]
Цитата Сообщение от Curry Посмотреть сообщение
Выглядят приложения windows в разных версиях и так по разному
Да я не об этом. То, что кнопки, там, и прочие элементы могут отрисовываться по-разному меня мало волнует. А вот если старая версия ie не поддерживает нужных методов, или стилей, это уже будет печальненько.
К тому же, есть и ещё один неприятный момент - код программы всегда будет доступен для просмотра и редактирования посторонним людям.
0
Модератор
 Аватар для Curry
5153 / 3466 / 536
Регистрация: 01.06.2013
Сообщений: 7,528
Записей в блоге: 9
16.09.2018, 09:57
Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
А вот если старая версия ie не поддерживает нужных методов, или стилей, это уже будет печальненько.
А вы решите/узнайте у заказчиков начиная с какой виндовс они пользуются и не применяйте то что на ней не работает.
Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
код программы всегда будет доступен для просмотра
А тут только одно решение - переходите на другой язык, который компилируется в машинный код. На js ничего не поможет. Не утащат только если никому не нужно будет.
0
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090
16.09.2018, 10:03  [ТС]
Вот, собственно, о чём я и говорил. Даже долго искать не пришлось.

При чём, у меня последняя версия ie, и в нём страница работает без проблем. Видимо, для запуска hta в винде есть отдельный движок, который не обновлялся с доисторических времён. Потому что не поддерживать querySelector - это просто смешно. Конечно, я могу использовать getElementById, и он наверняка будет работать. Но сколько ещё подобных сюрпризов меня будет ждать? И какие костыли придётся выдумывать, чтобы всё нормально заработало?...
0
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090
16.09.2018, 10:05  [ТС]
...хотя есть и свои плюсы - это решает вопрос совместимости
0
Модератор
 Аватар для Curry
5153 / 3466 / 536
Регистрация: 01.06.2013
Сообщений: 7,528
Записей в блоге: 9
16.09.2018, 13:12
Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
Видимо, для запуска hta в винде есть отдельный движок, который не обновлялся с доисторических времён.
Так узнайте его версию через navigator.userAgent
У меня
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; HRTS)
0
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090
16.09.2018, 13:28  [ТС]
Цитата Сообщение от Curry Посмотреть сообщение
Так узнайте его версию
И что мне это даст? Я и так уже понял, что про современные удобства придётся забыть.
Да что говорить о старых версиях, когда и последняя версия ie не перестаёт "радовать". Сейчас, вот, выяснил, что он Math.trunc() не поддерживает. 2018 год на дворе
0
Модератор
 Аватар для Curry
5153 / 3466 / 536
Регистрация: 01.06.2013
Сообщений: 7,528
Записей в блоге: 9
16.09.2018, 13:41
Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
он Math.trunc() не поддерживает
JavaScript
1
2
3
4
5
6
function truncate(number)
{
    return number > 0
         ? Math.floor(number)
         : Math.ceil(number);
}
0
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090
16.09.2018, 14:45  [ТС]
Curry, да я, конечно, с этим разобрался. Просто пример привёл, насколько всё печально.
0
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090
17.09.2018, 09:07  [ТС]
А вот ещё интересный вопрос. Если я хочу чтобы моё приложение обновлялось... само себя оно переписывать не будет. Значит, надо чтобы оно запускало отдельный процесс, который уже будет его обновлять. Наверное, это средствами HTML/JS реализовать не получится?
0
Модератор
 Аватар для Curry
5153 / 3466 / 536
Регистрация: 01.06.2013
Сообщений: 7,528
Записей в блоге: 9
17.09.2018, 09:36
JavaScript
1
2
var shell = new ActiveXObject("WScript.shell");
shell.run("sketchup.exe");
Тут примеры на VBScript, но функции те же.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.09.2018, 09:36
Помогаю со студенческими работами здесь

Создать приложение windows form
Вообщем есть задание: Дан вещественный массив A Заменить каждый нулевой элемент главной диагонали максимальным элементом побочной...

Создать приложение Windows Form
Добрый день! Помогите, пожалуйста, с заданием. Написала код на С#, представляющий собой парсер сайтов в консольном приложении: ...

Не удаётся создать приложение C++ Windows Forms
Windows Forms есть для C#,но нет для C++. Может можно его как-то по другому создать?

Создать windows приложение работающее с SQL
Помогите подключиться к базе sqlserver, надо создать windows приложение работающее с данными из базы.

Создать Windows приложение согласно приведенным требованиям
Стиль класса: перерисовки окна при изменении вертикального размера; посылать сообщение оконной процедуры при двойном щелчке мыши, если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru