Easy-window — это универсальное оконное приложение, предназначенное для упрощения создания десктопных приложений с использованием современных технологий HTML5. Это позволяет быстро создавать Windows-приложения без необходимости знания сложных технологий, таких как QT, C++, C#, Java. Для использования этого инструмента достаточно иметь навыки работы с веб-страницами.
По сравнению с NW.js и Electron, использование easy-window проще и легче по размеру (только несколько мегабайт).
Внешний вид программы может быть таким же впечатляющим, как и ваше воображение. Без лишних слов, давайте рассмотрим примеры окон, которые можно создать с помощью данного инструмента.
Чтобы запустить примеры программ, вам потребуется скачать файл easy-window.exe
, папку samples
и файлы с расширением .vbs
. Запустите соответствующий файл .vbs
, чтобы начать работу. Вы можете изменять параметры в файле .vbs
, чтобы настроить внешний вид окна.
Пример параметров файла .vbs
:
Dim shell
Set shell = WScript.CreateObject("WScript.Shell")
shell.run "easy-window.exe -url https://www.baidu.com -title Baidu Главная страница"
Здесь easy-window.exe
— это основной исполняемый файл, отвечающий за отрисовку окна. Параметр -url
указывает страницу, которую следует отобразить, а параметр -title
устанавливает заголовок окна. В результате будет показана следующая страница:
Конечно, использование файла .vbs
не обязательно; вы также можете запустить easy-window.exe -url https://www.baidu.com -title Baidu Главная страница
прямо из командной строки, эффект будет тем же самым.
Для получения более подробной информации о других параметрах запуска обратитесь к разделу ниже «Параметры». Кроме способа конфигурации стилей окна через параметры запуска, также поддерживаются методы конфигурации с использованием файла. Вы можете запустить easy-window.exe
, если в том же каталоге отсутствует файл config.ini
, то он будет автоматически создан; если файл уже существует, то будут прочтены его параметры.Пример конфигурационного файла:
[окно]
url=samples/login/index.html
title=Пользовательская авторизация
ширина=640
высота=600
изменяемый=False
максимальный=False
Запустив easy-window.exe
, вы сразу получите отображение файла samples/login/index.html
.
Обратите внимание, что приоритет параметров запуска выше, чем конфигурационного файла. Если одновременно указаны одинаковые параметры как через параметры запуска, так и через конфигурационный файл, то будут использоваться параметры запуска.
Логические значения могут принимать только два значения: true
или false
.| Параметр | Тип | Описание |
|----------|---------|-------------------------------------------------------------------------------------------|
| url | string | Адрес страницы, может быть относительным, абсолютным или удалённым. |
| timeout | int | Время ожидания завершения загрузки страницы. Единица измерения — миллисекунды. |
| icon | string | Путь к значку окна. |
| title | string | Название окна. |
| minbox | bool | Кнопка сворачивания окна. По умолчанию: true
. |
| maxbox | bool | Кнопка изменения размера окна до максимального. По умолчанию: true
. |
| minmax | bool | Ограничение изменения размера окна. По умолчанию: false
. |
| border | bool | Присутствие границы окна. По умолчанию: true
. |
| resizable| bool | Изменяемость размера окна. По умолчанию: true
. |
| shadow | bool | Присутствие тени у границы окна. По умолчанию: false
. |
| posx | int | Начальная позиция окна по оси X. |
| posy | int | Начальная позиция окна по оси Y. |
| width | int | Ширина окна. |
| height | int | Высота окна. |
| contextmenu| bool | Отображение контекстного меню мыши. |По умолчанию: true
. |
| layered | bool | Управление нерегулярной формой окна. По умолчанию: false
. |
| toolwindow| bool | Отображение окна как всплывающего инструментального окна. По умолчанию: false
. |
| topmost | bool | Окно всегда поверх других окон. По умолчанию: false
. |### Встроенные расширения JS функций
Цель встроенных расширений JS функций — компенсировать недостаток JavaScript при работе с API Windows. Для использования этих расширений JS функций достаточно просто указать external.
перед вызовом функции.
Пример использования:
external.alert("Hello World!");
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
</head>
<body>
<button onclick="loadFile()">Открыть файл</button>
<script>
function loadFile() {
// Выбор файла
var filePath = external.openFile('Все файлы|*.*|Текстовые файлы (.txt)|*.txt|');
// Чтение и отображение содержимого файла
external.alert(external.readFile(filePath), 'Содержимое выбранного вами файла:');
}
</script>
</body>
</html>
Как видно, вызов external.openFile()
открывает окно выбора файла, после выбора файла эта функция возвращает путь выбранного файла. Функция external.readFile()
позволяет считывать содержимое локального файла.
Дополнительные функции см. ниже:|Функция|Описание|
| :--- | :--- |
|hitCaption()|Основно используется для привязки мыши к перемещению окна. Например, при работе с незакрытым или некруглым окном, привязка этой функции к определённому html-элементу позволит перемещать этот элемент с помощью мыши. Пример: <img src="images/ecology-heart.png" onmousedown="external.hitCaption()">
. Подробнее см. пример работы с некруглыми окнами|
|hitMax()|Максимизировать окно|
|hitMin()|Уменьшить окно|
|close()|Закрыть окно|
|alert(text, title)|Показать диалоговое окно, text
: сообщение, title
: заголовок окна|
|openFile(fileType, title)|Открыть файл, fileType
: тип файла (все файлы|*. *|текстовый файл|*. txt|), title
: заголовок окна выбора файла. Параметры не обязательны|
|openDir(dir, subTitle, title)|Открыть директорию, dir
: начальная директория, subTitle
: подзаголовок, title
: заголовок. Параметры не обязательны|
|saveFile(fileType, title)|Сохранить файл, fileType
: тип файла (все файлы|*. *|текстовый файл|*. txt|), title
: заголовок окна. Параметры не обязательны|
|readFile(path)|Прочитать файл, path
: путь к файлу|
|writeFile(path, text)|Записать файл, path
: путь к файлу, text
: содержимое файла|
|clipRead()|Прочитать содержимое буфера обмена|
|clipWrite(text)|Записать содержимое в буфер обмена, text
: текстовое содержимое|
|getMousePos()|Получить положение указателя мыши|
|getPos()|Получить положение окна|
|setPos(x, y, width, height)|Установить положение и размер окна, x
: горизонтальное положение, y
: вертикальное положение, width
: ширина, height
: высота.|Параметры ширины и высоты могут отсутствовать|
|getScreen()|Получить ширину и высоту экрана|
|setIcon(iconPath)|Установить значок окна|
|setTitle(text)|Установить заголовок окна|
|setTopmost(state)|Установить окно поверх всех других, state
: true/false|
|shell(cmd, showCmdWindow, waitResult)|Выполнить системную команду, cmd
: команда, showCmdWindow
: показывать ли окно командной строки, waitResult
: ждать завершения выполнения команды и получения результата. Пример: var ip = external.shell('ipconfig /all', false, true); external.alert(ip);
|
Цель данного проекта заключается в упрощении разработки десктопных приложений, поэтому его функционал ограничен. В случае необходимости расширения возможностей существуют два варианта:1. Для отображения пользовательского интерфейса можно использовать браузерный движок miniblink
. Большинство функций, поддерживаемых браузерами, также поддерживаются этим движком, что позволяет использовать технологии Ajax
или WebSocket
для взаимодействия с серверными языками программирования. Таким образом, большинство функций могут быть реализованы на других языках.
aardio
, который позволяет вам самостоятельно модифицировать исходный код, собирать и упаковывать его, а затем заменять исполняемый файл easy-window.exe
.Если вас заинтересовал данный проект, приветствуем использование и обсуждение его улучшений.
Сайт aardio
: http://www.aardio.com/
Сайт miniblink
: https://weolar.github.io/miniblink/
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )