21

By lightweight apps, I mean the toolset can create a single executable file or set of files that can be copied into a folder and run as an EXE with no other installation process.

Of particular interest:

  • What's the programming language
  • what versions of Windows are supported
  • is there interactive debugging
  • are there GUI layout/design tools
  • other notable features and limitations
Spike0xff
  • 1,246
  • 1
  • 15
  • 24
Ash
  • 60,973
  • 31
  • 151
  • 169
  • Just added AutoIt3.exe as a response to your comment – VonC Feb 26 '09 at 06:47
  • Just added AutohotKey comment as a complement to my answer – VonC Feb 26 '09 at 07:01
  • 2
    Most windows PCs these days have at least .Net 2.0 runtime, so I wouldn't really regard this as much of a hurdle or external dependency. It's as much a dependency as relying on Windows itself. Sure Win2000 machines might not have it, but that is a 10 year old OS – csjohnst Feb 26 '09 at 07:03
  • 2
    @csjohnst, I would really like to be able to rely on .NET 2.0 being on every windows PC but I have not found this to be the case. I deal with many non-technical users and it is always easier if I don't need to install some scary "Framework" on their PC, just to run my little app. – Ash Feb 26 '09 at 07:08
  • ... And just added Autoit debug tools links, in answer to your command – VonC Feb 26 '09 at 07:19

10 Answers10

8

For quick prototyping, Autoit is a viable option (but it is a scripting language though).

http://www.autoitscript.com/images/gui_eg1.png

Combined with Scite as an Editor, and autoit to exe capability (AutoIt3.exe in Scite and Autoit3Wrapper.exe to actually produce exe), you have a full GUI development environment.


AutohotKey is an alternative, but based on old AutoitV2.

Still, you can execute AutohotKey scripts from Autoit ;)

Run("c:\Program Files\Autohotkey\Autohotkey.exe c:\scripts\devicesset.ahk")

While interactive debugging is not natively supported, they are (2008, but in 2014: was?) several debugging tools to facilitate the debug process. (from this ticket)

http://www.autoitscript.com/forum/uploads/monthly_01_2008/post-3602-1199735240.png

Update 2014: the "AutoEditDebugger" might not be supported:

EDIT October 2009: NB This script has not been maintained since some time in 2008. Due to some problem with the editor it crashes in Vista.

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • Does it compile the runtime into the output .exe? – Simon Buchan Feb 26 '09 at 06:46
  • @VonC, I've actually used Autohotkey for key macros, shortcuts etc and know it can do basic GUI. It's just the actual language is rather "fiddly" and I find it a bit hard to debug. I'll check out Scite to see if it supports Autohotkey too, thanks. – Ash Feb 26 '09 at 06:51
  • Thanks for the extra info. I'm going to compare AutoIt and AutoHotkey. If I can interactively debug AutoIt script, that might be exactly what I'm looking for. – Ash Feb 26 '09 at 07:05
  • @VonC, You deserve a few extra votes for the updates you've made to this answer! – Ash Feb 26 '09 at 07:25
5

Delphi is definitely a good way to go. There is a free version called Turbo Delphi. The version available is a couple of years old, so it's a shame they haven't release Turbo versions of the new stuff.

There are also trials available of the full fledged RAD Studio, but I don't think that's what you're looking for.

Ray
  • 45,695
  • 27
  • 126
  • 169
  • Looks promising, thanks. Have you used it yourself? Also, how does it compare to Turbo C++ and Turbo Ruby, which is best for rapid GUI development? – Ash Feb 26 '09 at 06:57
  • I haven't used the Turbo version so couldn't comment on it. Delphi itself is a quick and easy way to develop although it has some quirks. I prefer C# personally. Haven't tried Turbo C++ or Ruby. – Ray Feb 26 '09 at 07:00
  • @Ash, Delphi is best in GUI Development also it's the most readable code you can write in any language, which is easier than other in maintenance if you leave it for long time. aslo Turbo C++ has the same Rad way as Delphi, because it's uses the same VCL framework. but I prefer to code in Delphi. – Mohammed Nasman Feb 26 '09 at 08:13
4

You can Get Turbo Delphi and Turbo C++ Builder explorer editions for free, and you can develop with them native application that you can have only .exe file without any dependencies on any windows version from (win98 to win7), both of them include more than 200 components, and you can use more (without installing to IDE that the only restriction), and you develop with them free and commercial software.

Delphi is the most RAD(Rapid Application Development) IDE that you can use to produce windows application in very easy and efficient way, you get fast developing application with fast execution time compared to speed of C++.

Another option to use Lazarus IDE, which based on FreePascal compiler, so you can have your application running on windows/linux/MacOS/Unix and more.

Mohammed Nasman
  • 10,992
  • 7
  • 43
  • 68
  • Thanks, Ray also mentions this. I'm a .NET developer primarily but I worked for a while on a migration at a Delphi company. I agree that the Dektop RAD tools Delphi provides are very powerful and probably quicker then WindowsForms etc. – Ash Feb 26 '09 at 07:17
4

Visual C++ Express + WTL. Both are free. WTL is a relatively good(1) windowing library. No wizards, though, and you have to have good understanding of the Win32 windowing system.

You can also use Visual C# Express along with Mono to build WinForms app. While the end result is not technically a standalone executable and requires a framework, Mono dlls can be distributed along your exe (2), so you can just have a single folder for xcopy deployment. (And I think on Windows with .Net installed, your exe will be run on .Net automatically)

  • (1) I am spoiled by WPF. :-)
  • (2) Read on the intertubes. I have not personally tried it, though.
Franci Penov
  • 74,861
  • 18
  • 132
  • 169
  • I appreciate the WTL link, I hadn't heard of it. I already have full VS2008 so I would use that instead of the Express version. The mono suggestion is interesting, I wonder if it would work on a Windows machine without any .NET Framework (ie just using the XCopied mono dlls). – Ash Feb 26 '09 at 07:21
  • That's what various people claimed on the internet - that you can just copy the Mon dlls side-by-side with your app and it'll run just fine on machines with no .Net. I have no such machine :-), and I have no tried this scenario, though. – Franci Penov Feb 26 '09 at 07:25
4

Perhaps not an option given your statement regarding C++, but if you are developing an open source / free application then Qt is a very nice GUI toolkit with designer.

Also, wxWidgets is a very functional toolkit that will allow you to deploy a single exe, although the best GUI designers are not free.

Gian Paolo
  • 514
  • 2
  • 5
1

Maybe D is an option? A friend of mine blogged about a GUI Designer for D here and I believe that the resulting executable has no dependencies.

Patrick Klug
  • 14,056
  • 13
  • 71
  • 118
1

Just use VS.NET with C and Win32 api.

No runtime needed of course, as the CRT is native.

1

You should use Digital Mars C/C++ in pure C and program with GDI32 functions of WIN32 API (Just #include ). Don't forget to link your binary object executable with gdi32.lib.

anonyme
  • 1
  • 1
0

Check out Microsoft's Express editions of their developer tools.

jro
  • 7,372
  • 2
  • 23
  • 36
  • 1
    VC++ Express in particular, since, after all, C# et al require the .NET runtime. Which is something he already discounted. This answer doesn't provide anything new as far as I can tell. – Devin Jeanpierre Feb 26 '09 at 06:43
  • 2
    Yes, .NET is not an option and I explained why C++ is not ideal. – Ash Feb 26 '09 at 06:49
  • My bad, missed the reference to external runtime or libs. Devin, thanks for the great subjective assessment. ;-) – jro Feb 26 '09 at 09:25
0

If you're doing very simple applications, AutoIt might be an option as it requires no runtime files and its executables will even run on WinPE. It's a bit primitive though and not exactly object-oriented. It works a bit like the old VB. It is, however, free and easy to learn and apart from something like NSIS (NullSoft Install System) there aren't many free, standalone GUI creators.

Damien
  • 1,463
  • 1
  • 18
  • 30