Каков самый быстрый путь к написанию облегченной программы GUI в Windows?

Я хочу небольшой (

этот исполняемый файл должен работать на XP, Vista, Server 2003 и Server 2008 версии Windows в 32-бит и 64 бит на архитектуре x86-64, а также чипов Itanium.

Это было бы захватывающе, если бы нам пришлось построить его только один раз, чтобы запустить его на всех эти платформы, но это не требование. Это для проприетарной системы, поэтому код GPL недоступен.

каков самый быстрый способ собрать это вместе?

Это некоторые вещи, которые я изучаю, поэтому, если у вас есть информация об их жизнеспособности, я все об этом:

  • Perl / Tk с помощью perl2exe для получения двоичного файла.
  • Рубин с wxruby
  • изучите Программирование MFC и сделайте это правильно, как все еще.

16 ответов


Как насчет сценария WSH? Это не будет exe, верно, но просить папку, я не вижу необходимости в exe-файле, а тем более в 30Mb...

скрипт 1Kb, сохраните его как любое имя с расширением vbs и запустите его. Это, в случае, если это не ясно, запрашивает имя папки, а затем запускает calc.exe из подкаталога system32. Конечно, вы можете сделать намного лучше, чем это в 2 или 4 Кб.

Set WshShell = WScript.CreateObject("WScript.Shell")
win = InputBox("Please type your Windows folder location.")
If Right(win,1) <> "\" Then
  win = win & "\"
End If
WshShell.Run win & "system32\calc.exe"

чтобы добавить диалоговое окно браузера папок вместо InputBox, проверка этой выход.

ясные преимущества являются следующими:

  • простота (ну, VB уродлив, но вы можете использовать JScript, если хотите), не нужно его компилировать!
  • совместимость, работает на каждой машине windows, которую я имею в наличии (от 98 и далее)

Я бы использовал .NET и WinForms. Идея сценаристского решения привлекательна, но на практике я часто нахожу, что вы в конечном итоге прыгаете через обручи, чтобы сделать что-то за пределами основного случая, и все еще не имеете гибкости делать все, что хотите.


самый быстрый способ в Windows для легкого и быстрого GUI? Одно слово.. Делфи! ему не хватает 64-битной поддержки сейчас, но тогда FreePascal придет на помощь.


наличие небольшого автономного приложения и его быстрое развитие, к сожалению, обычно противоречат требованиям.

честно говоря, учитывая, насколько невероятно простое приложение, я бы написал его на C с прямыми вызовами Win32: один вызов SHBrowseForFolder (), чтобы получить каталог, и один в ShellExecuteEx() для запуска программы. Даже MFC слишком тяжел для такого скромного применения. Установите статическую связь среды выполнения C, и вы сможете сохранить размер автономного исполняемого файла менее 100k. Приличный кодер Windows C должен быть в состоянии постучать это менее чем за час, предполагая, что у вас есть один под рукой.


Python С либо wxWidgets, в или Tkinter должен быть в состоянии сделать это почти без каких-либо усилий. Работает на все, и py2exe получит вам автономный исполняемый файл.


Tcl / tk является одним из решений. Вы можете иметь один исполняемый файл (включая пользовательские изображения, DLL и т. д.), Используя что-то под названием "starpack" - виртуальную файловую систему, которая является интерпретатором tcl и кодом приложения. Я думаю, что это будет весить, возможно, пару мегабайт.

из ваших спецификаций мне потребуется лично, возможно, 15 минут, чтобы получить первую рабочую версию.

Tcl / Tk имеет лицензию BSD.


для всех своих недостатков Visual Basic исторически отлично подходит для супер-простых приложений, таких как это.


Я согласен с ответом Tcl/Tk выше. Для получения дополнительной информации о starpack, на который он ссылается, см.:http://www.equi4.com/tclkit/ это интерпретатор Tcl/Tk, доступный для различных ОС примерно за 1 МБ. В прошлом, по-видимому, было обеспокоено внешним видом Tcl / Tk UI, но это было рассмотрено новой структурой с именем "плитка", которая поддерживает собственный внешний вид ос пользователя.


для быстрой и грязной программы GUI, как вы сказали, Вы можете использовать AutoIt сценарий. Вы даже можете скомпилировать в exe.

для примера GUI AutoIt вы можете проверить мой скрипт перенаправления stdout в предыдущем ответе здесь


wxWidgets, в; это кросс-платформенный, бесплатный, с открытым исходным кодом и легко учиться


вы можете сделать это в MFC и иметь исполняемый файл под 100k. В общем случае, если вы хотите уменьшить размер исполняемых файлов, вы можете использовать UPX для сжатия exe. Если вам нужен пример, взгляните на uTorrent. Это полнофункциональный BitTorrent приложение в менее чем 300k исполняемого файла.


Я использую HTA (HTML-приложение) для быстрых и грязных приложений form & script. См.Центр разработчиков HTA от Microsoft для деталей и примеров. Это в основном использует HTML для формы и любой HTML-доступный язык сценариев для скрипта. Обычная безопасность браузера обходится так, что вы можете получить почти все внутренние ОС. Вышеупомянутый сайт также содержит ссылки на несколько инструментов, которые почти автоматизируют часть сценариев для вас.


PyQt работает очень хорошо для этого. Двоичные файлы для Windows здесь:

http://www.riverbankcomputing.co.uk/software/pyqt/download

хорошая книга здесь:

http://www.amazon.com/Programming-Python-Prentice-Software-Development/dp/0132354187/ref=sr_1_1?ie=UTF8&qid=1295369454&sr=8-1

и вы можете заморозить их с помощью различных методов, если вам нужен exe(ы).


подобно тому, что сказал Винко Врсалович, вы можете использовать приложение HTA. Это так же просто, как создание веб-страницы с функциями хоста сценариев windows. Я построил несколько утилит с jscript, и это действительно легко и быстро http://msdn.microsoft.com/en-us/library/ms536496 (VS.85).aspx


эти ответы невероятны.

Visual Studio Forms editor позволяет рисовать WinForms и автогенерирует шаблонный код GUI (что в лучшем случае является болью в заднице для большинства других языков и наборов инструментов). Затем вы можете использовать C# или любой другой язык .NET. .NET имеет виджеты для выбора файлов. Я мог бы написать этот сценарий за 20 минут, и он будет работать на каждой из ваших целевых платформ бесплатно. Нарисуйте GUI, перетащите-n-drop файл выбора, заполнить, возможно, два крючки, чтобы сделать" запустить другой файл, чем они хотели", сделали.


предлагаю Autohotkey (AHK) или Autoit. Оба поддерживают win95+ (с оговорками для некоторых функций). Их можно скомпилировать в небольшие .exe без внешней зависимости (кроме собственных DLL).

плюсы:

  • малый размер
  • легко писать код
  • полезно для простых-сложных операций
  • можно легко создать GUI

плюсы:

  • кривой обучения (как синтаксис необычный)