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

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

14.09.2018, 22:29. Показов 3394. Ответов 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
5158 / 3486 / 536
Регистрация: 01.06.2013
Сообщений: 7,564
Записей в блоге: 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
5158 / 3486 / 536
Регистрация: 01.06.2013
Сообщений: 7,564
Записей в блоге: 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
5158 / 3486 / 536
Регистрация: 01.06.2013
Сообщений: 7,564
Записей в блоге: 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
5158 / 3486 / 536
Регистрация: 01.06.2013
Сообщений: 7,564
Записей в блоге: 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
5158 / 3486 / 536
Регистрация: 01.06.2013
Сообщений: 7,564
Записей в блоге: 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
5158 / 3486 / 536
Регистрация: 01.06.2013
Сообщений: 7,564
Записей в блоге: 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
5158 / 3486 / 536
Регистрация: 01.06.2013
Сообщений: 7,564
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru