我想要一个小的(<30MB)独立Windows可执行文件(单个文件),它创建一个窗口,询问用户目录的位置,然后在该目录中启动另一个程序。
此可执行文件必须在x86-64架构上的32位和64位Windows XP,Vista,Server 2003和Server 2008版本以及Itanium芯片上运行。
如果我们只需要构建一次以便在所有这些平台上运行它,那将是非常壮观的,但这不是必需的。这适用于专有系统,因此GPL代码是禁止的。
将这些放在一起的最快方法是什么?
这些是我正在研究的一些事情,所以如果你有关于它们可行性的信息,我就是这样:
答案 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。
明显的好处是:
答案 1 :(得分:9)
Windows上用于轻量级和快速GUI的最快方式?一个字.. Delphi!它现在缺乏64位支持,但随后FreePascal将会拯救。
答案 2 :(得分:9)
我使用.NET和WinForms。脚本解决方案的想法很有吸引力,但在实践中,我经常发现你最终跳过篮球去做除基本情况之外的任何事情,但仍然没有灵活性去做你想做的一切。
答案 3 :(得分:5)
答案 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)
答案 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
这里有一本好书:
如果你需要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)。
优点:
缺点:
答案 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