在Windows上编写轻量级GUI程序的最快捷路径是什么?

时间:2008-11-07 17:06:44

标签: windows performance user-interface

我想要一个小的(<30MB)独立Windows可执行文件(单个文件),它创建一个窗口,询问用户目录的位置,然后在该目录中启动另一个程序。

此可执行文件必须在x86-64架构上的32位和64位Windows XP,Vista,Server 2003和Server 2008版本以及Itanium芯片上运行。

如果我们只需要构建一次以便在所有这些平台上运行它,那将是非常壮观的,但这不是必需的。这适用于专有系统,因此GPL代码是禁止的。

将这些放在一起的最快方法是什么?

这些是我正在研究的一些事情,所以如果你有关于它们可行性的信息,我就是这样:

  • Perl / Tk使用perl2exe获取二进制文件。
  • Ruby with wxruby
  • 学习MFC编程,并像其他人一样以正确的方式完成。

17 个答案:

答案 0 :(得分:15)

WSH脚本怎么样?它不会是一个exe,对,但要求一个文件夹,我不认为需要一个exe文件,更不用说30Mb了...

1Kb脚本,使用vbs扩展名将其保存为您喜欢的任何名称并运行它。如果不清楚,请询问您是否有文件夹名称,然后从system32子目录运行calc.exe。你当然可以在2或4 Kb中做得比这更好。

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"

要添加“文件夹浏览器”对话框而不是“输入框”,请选中this

明显的好处是:

  • 简单(好吧,VB很难看,但如果你愿意,你可以使用JScript),不需要编译它!
  • Compatibility,适用于我可用的每台Windows机器(从98开始)

答案 1 :(得分:9)

Windows上用于轻量级和快速GUI的最快方式?一个字.. Delphi!它现在缺乏64位支持,但随后FreePascal将会拯救。

答案 2 :(得分:9)

我使用.NET和WinForms。脚本解决方案的想法很有吸引力,但在实践中,我经常发现你最终跳过篮球去做除基本情况之外的任何事情,但仍然没有灵活性去做你想做的一切。

答案 3 :(得分:5)

具有wxWidgetsTkinter的Python应该能够完全没有任何努力。运行一切,py2exe将为您提供独立的可执行文件。

答案 4 :(得分:5)

有一个小的独立应用程序并快速开发它,我很遗憾地说,通常是相互矛盾的要求。

老实说,鉴于应用程序非常简单,我会用C语言直接调用Win32:一次调用SHBrowseForFolder()来获取目录,一次调用ShellExecuteEx()来运行程序。即使MFC对于这种适度的应用来说也是太重了。将C运行时设置为静态链接,您应该能够将独立可执行文件的大小保持在100k以下。一个像样的Windows C编码器应该能够在不到一个小时的时间里敲响它,假设你有一个人可以用。

答案 5 :(得分:4)

Tcl / tk是一种解决方案。您可以使用称为“starpack”的东西来创建单个文件可执行文件(包括自定义图像,dll等) - 一个既是tcl解释器又是应用程序代码的虚拟文件系统。我认为它的重量可能只有几兆字节。

根据您的规格,我个人可能需要15分钟才能获得第一个工作版本。

Tcl / Tk拥有BSD许可证。

答案 6 :(得分:3)

对于它的所有缺陷,Visual Basic在历史上一直非常适合这样的超级简单应用程序。

答案 7 :(得分:3)

我同意上面的Tcl / Tk答案。有关他所引用的starpack的更多信息,请参阅:http://www.equi4.com/tclkit/它是一个Tcl / Tk解释器,可用于各种操作系统,大约1MB。在过去,显然一直关注Tcl / Tk UI的外观和感觉,但这已被一个名为“Tile”的新框架所解决,该框架支持用户操作系统的原生外观。

答案 8 :(得分:3)

对于像您所说的快速而脏的GUI程序,您可以使用AutoIt脚本。你甚至可以编译成一个exe。

对于AutoIt的GUI示例,您可以在上一个答案中查看我的stdout重定向脚本here

答案 9 :(得分:2)

wxWidgets;它是跨平台的,免费的,开源的,易于学习的

答案 10 :(得分:2)

您可以在MFC中执行此操作,并在100k以下具有可执行文件。通常,如果要保持可执行文件的大小,可以使用UPX执行exe压缩。如果您想要一个示例,请查看uTorrent。它是一个功能齐全的BitTorrent应用程序,可执行程序不到300k。

答案 11 :(得分:1)

我使用HTA(HTML应用程序)来快速和肮脏的形式&amp;脚本应用程序有关详细信息和示例,请参阅Microsoft's HTA Developers Center。这基本上使用HTML作为表单,以及脚本的任何HTML可访问的脚本语言。绕过正常的浏览器安全性,以便您可以获得几乎所有操作系统内部。上面的网站还包含几个工具的链接,这些工具几乎可以为您自动编写脚本部分。

答案 12 :(得分:1)

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(s),你可以使用各种方法冻结它们。

答案 13 :(得分:0)

30MB很大!

Qt(C ++)可能是最佳选择。它是便携式的,开发迅速且运行相对较快。使用UPX(适用于eXecutables的最终打包程序),您的程序将达到10M +。

Qt(Python)也可以,但是会慢一些。

如果您希望它小于1M和/或希望它很快,您可以使用Win32 API用C编写它,或者使用Delphi。

答案 14 :(得分:0)

我建议Autohotkey (AHK)Autoit。两者都支持win95 +(对于某些功能有警告)。它们可以编译成小的.exe,没有外部依赖(除了本机DLL)。

优点:

  • 小尺寸
  • 易于编写代码
  • 对简单 - 复杂的操作很有用
  • 可以轻松创建GUI

缺点:

  • 学习曲线(语法不寻常)

答案 15 :(得分:0)

这些回答令人难以置信。

Visual Studio窗体编辑器允许您绘制WinForms并自动生成样板GUI代码(这对于大多数其他语言和工具包来说是最难的)。然后,您可以使用C#或任何其他.NET语言。 .NET有文件选择器的库存小部件。我可以在20分钟内编写该脚本,它将在您的每个目标平台上免费运行。绘制GUI,拖放文件选择器,填写可能两个钩子来执行“启动不同于他们想要的文件”的事情,完成。

答案 16 :(得分:0)

类似于Vinko Vrsalovic所说的,你可以使用HTA应用程序。它就像使用Windows脚本主机功能构建网页一样简单。我用jscript构建了一些实用程序,它非常简单快捷 http://msdn.microsoft.com/en-us/library/ms536496(VS.85).aspx