Вопрос или проблема
Всем привет! Мне нужно решить следующую концептуальную задачу. Я использовал HTA на протяжении десятков лет и преобразовывал свои HTA в exe-файлы для MS Windows с помощью старого программного обеспечения ExeScript, которое помещает HTA и все дополнительные файлы в один exe-файл. Если запустить такой exe-файл, он “незаметно” разворачивает все содержащиеся файлы в папку TEMP MS Windows и запускает HTA. Мне это нравилось, потому что мне нужно было иметь доступ к локальным файлам, чтобы читать их, делать некоторые вычисления и записывать выходные файлы. Мне нужно было читать файлы MS Excel и текстовые файлы, которые создаются другими приложениями, поэтому я использовал объекты ActiveX в MS Windows, такие как Scripting.FileSystemObject (для чтения и записи локальных текстовых файлов), shell.application (для отображения диалогового окна BrowseForFolder), Excel.Application (для работы с Excel) и иногда WScript.Shell. Такой подход работал хорошо, кроме того, что я не могу использовать новые функции HTML 5 и CSS 3, потому что некоторые из них работают для HTML IE 11, но не работают для MS HTA в том же режиме IE 11. HTA медленно уходит в небытие в течение длительного времени, поэтому я ищу современную реализацию HTML-приложения, которое может читать и записывать локальные файлы за пределами своего песочницы, а также читать файлы Excel. Я предпочитаю OpenSource или бесплатное программное обеспечение. Спасибо заранее!
Судя по тому, что я прочитал, следующим лучшим вариантом будут приложения .Net MAUI с использованием Razor для графического интерфейса.
Больше информации здесь: https://learn.microsoft.com/en-us/answers/questions/403154/what-is-the-future-of-mshta-exe-since-internet-exp
Ответ или решение
Для решения вашей задачи о замене MS HTA, особенно учитывая ваши требования к доступу к локальным файлам и работе с Excel, можно рассмотреть несколько современных альтернатив. Ваша ситуация действительно сложная, но совместив полученные знания с современными технологиями, мы можем предложить подходы, которые позволят вам достичь желаемых результатов.
1. Electron
Electron — это фреймворк, который позволяет создавать кросс-платформенные настольные приложения с помощью веб-технологий — HTML, CSS и JavaScript. Он уже широко используется для создания приложений, таких как Visual Studio Code и Slack.
Преимущества:
- Поддержка современных веб-технологий: Вы сможете использовать CSS Flexbox и другие современные функции HTML5 и CSS3.
- Доступ к файловой системе: Electron предоставляет доступ к файловой системе через модули Node.js, такие как
fs
(файловая система), что позволяет осуществлять операции чтения и записи локальных файлов. - Работа с Excel: С помощью библиотеки
exceljs
илиxlsx
вы сможете легко считывать и записывать Excel-файлы.
Недостатки:
- Размер: Приложения на Electron могут быть достаточно тяжелыми по объему.
- Навыки разработки: Вам понадобится знание JavaScript и основ работы с Node.js.
2. .NET MAUI
.NET MAUI (Multi-platform App UI) — это современная кросс-платформенная библиотека, которая позволяет разрабатывать нативные приложения для Windows, macOS, iOS и Android с использованием .NET.
Преимущества:
- Поддержка modern UI: Для работы с пользовательским интерфейсом вы можете использовать Razor, что откроет доступ к мощным возможностям разметки и стилям.
- Работа с локальными файлами: .NET предоставляет возможность работы с файловой системой без ограничений песочницы.
- Чтение Excel: Для работы с Excel можно использовать библиотеку
EPPlus
, которая позволяет читать и записывать Excel-файлы в .NET-приложениях.
Недостатки:
- Зависимость от платформы: Вам нужно будет обезопасить окружение .NET для кросс-платформенности, что может потребовать дополнительных ресурсов настраивания.
- Знания C#: Чтобы полноценно использовать .NET MAUI, потребуется знание C#.
3. Приложение на Python с использованием PyQt или Tkinter
Еще одним вариантом является разработка настольного приложения на Python с использованием библиотек, таких как PyQt или Tkinter.
Преимущества:
- Легкий доступ к локальным файлам: Оба фреймворка обеспечивают доступ к файловой системе.
- Богатая экосистема: Вы можете использовать библиотеки, такие как
openpyxl
илиpandas
, для работы с Excel. - Простота разработки: Python как язык имеет низкий порог входа и множество учебных материалов.
Недостатки:
- Кросс-платформенность: Приложения могут вести себя по-разному на разных операционных системах.
- Интерфейс: Могут потребоваться дополнительные усилия для реализации современного пользовательского интерфейса.
Заключение
Переход от MS HTA к более современному решению — это действительно стоящее начинание. Электроника, .NET MAUI или Python с графическими библиотеками — все это жизнеспособные варианты. Выбор подхода зависит от ваших прежних навыков, необходимых функциональных возможностей и удобства в разработке.
Совершенно точно, все предложенные решения обеспечат работу с современными веб-технологиями и расширенные возможности по доступу к локальным файлам и данным Excel, что позволит вам безопасно и эффективно развивать ваши проекты дальше.