Monday, May 24, 2010

Aerofoil 1.5.1 Released (64 and 32 bit builds available)

The award winning Aerofoil has now been updated to 1.5.1!

Aerofoil extends Vista and Windows 7 notebook battery life by:
  • Allowing you to manually disable Aero Glass.
  • Optionally managing Aero Glass user interface.
  • Optionally managing sound muting.
  • Optionally managing your chosen power plans.
  • Optionally managing Windows Sidebar.
  • Optionally showing a quick hibernate button.
  • Changing icon colour to show whether on battery or AC.

Benefits over earlier versions and similar software:
  • Much more efficient - Aerofoil is 100% unmanaged C++ (no .Net Framework!).
  • Available in both 64 bit (x64) and regular 32 bit (x86) builds.
  • Much smaller memory use (about 25%-30% of the size of similar software).
  • Unlike other apps, Aerofoil doesn't poll battery level continuously allowing the CPU save power by being idle more often.
  • No configuration file - everything is customised with the installer.
  • Open source and free - no expiry date, adware, spyware or malware, download and compile it for yourself if you prefer*!

What reviewers of Aerofoil have had to say:

"Aerofoil Extends Your Battery Life Approximately 25%", "you really should download"
(netbooknews.com) Disclaimer: Aerofoil's author's (my) personal best has been (only) 10-15%, or ~10 minutes, on a 2 hour battery 17 inch HP notebook (DV9233EU) with power saver mode using the lowest screen brightness.

"Why couldn't Microsoft just make power switching part of the "Designed for Windows 8" spec or buy Aerofoil?"
(Woody Leonhard, Infoworld)

"This is definitely a worth-while little app for road warriors"
(Metro Area Personal Computer Club, Iowa, USA)

"great for gaming and notebook applications alike"
(Official Windows Magazine - 47th of top 100, 37th of top 40 Hot Apps / TechRadar)

"Aerofoil, though, is far, far smaller and more efficient"
(Dave Johnson, Bnet)

The great advantage of AeroFoil is little resource consumption..... works perfectly with Windows 7"
(Kavya, Techno360)

"a must for every Vista laptop user."
(Wim Van Acoleyen, ZDNet)

"Great utility for gamers and laptop users."
(The Glitch)

"simple yet amazingly effective software that the corporate bigwigs couldn't figure out"
(Umar, Techtites)

Changes in 1.5.1:
  • Available as a 64 bit (x64) executable.
  • Source code updated for the wxWidgets 2.9.0 framework.
  • Project updated for Visual Studio 2010.
  • Multibyte strings have been removed in favour of Unicode.
  • UPX compression has been removed due to lack of a 64 bit Windows packer (memory usage remains the same).

Downloads (please read the important note below too):

Download from Softpedia (external site) (note Softpedia don't host the source code).
Download Aerofoil 1.5.1 (64 bit) Installer
Download Aerofoil 1.5.1 (32 bit) Installer

Download Aerofoil 1.5.1 (64 bit) Source Code (C++)*
Download Aerofoil 1.5.1 (32 bit) Source Code (C++)*

IMPORTANT: If you receive an error message regarding the msvcp100.dll being missing you may also need a Windows update - the Microsoft Visual C++ 2010 Redistributable. You can get this from Microsoft - links below - please choose the correct version:

Redistributable for 64 bit (x64)
Redistributable for 32 bit (x86)

* The source code has dependencies on the wxWidgets framework (2.9.0) and the project is for Visual Studio 2010. For 64 bit compilation wxWidgets will also need building with the WIN64 flag (instead of WIN32) and the project build platform targets set to x64. Additionally an environment variable $(WindowsSdkDirx64) needs to point to the relevant Windows 7.1 SDK.

47 comments:

Anonymous said...

Hello Benjamin, thanks for your great tool. But if I try to run the 64 bit version of Aerofoil, I get an error message saying that the file msvcp100/dll is missing. Any ideas?

Benjamin said...

Hi,

Apologies at 2am I forgot to update the dependency links. :) As this is built with the new VC++ 2010 it needs a Windows update to run - specifically the VC++ 2010 redistributable at http://www.microsoft.com/downloads/details.aspx?FamilyID=bd512d9e-43c8-4655-81bf-9350143d5867&displaylang=en

This is the 64 bit version. I'll update the posts for 32 bit when I update the links later.

As far as I know future service packs will include the redistributable anyway as it was the same with Visual Studio 2008 and Vista.

Benjamin

Anonymous said...

Cool, the VC++ 2010 redistributable fixed it! Thanks! :-))

Juan said...

Hello! Your application is very useful!

But since version 1.5.1 I cann't run it on Windows 7 for error of some dll (MSVCP100.dll and MSVCR100.dll) so I had to continue using version 1.5.0.

I tried to download and install them, but the error continues.

Anyway thank-you for your application!

Benjamin said...

From the text above:
"IMPORTANT: If you receive an error message regarding the msvcp100.dll being missing you may also need a Windows update - the Microsoft Visual C++ 2010 Redistributable. You can get this from Microsoft - links below - please choose the correct version:"

David said...

Hi,

Thanks for the update to 64bit, I think this utility is essential for every laptop for efficient battery usage.

When using the Task manager I noticed that the memory usage (Private working set) is 4MB which is double that of the previous version. I am wondering if this is related to the fact its 64bit or that your using a more recent Visual C++ Library.

Would it be possible to user an earlier Library say v9 of the C++ Library as its more likely to be already installed in Windows 7 and Vista computers and is used by alot of other software.

Benjamin said...

Hi David,

I think the difference is mostly being caused by the transition to 64 bit (see http://stackoverflow.com/questions/1589742/size-of-64-bit-dll-50-larger-than-32-bit ) and the newer WXWidgets library. Whilst Aerofoil does not make a lot of pointer usage WXWidgets (the GUI dll) is likely the cause. Regarding switching back to an older VC++ the VC 2010 runtime will be in the Win 7 service pack currently in beta and I've been moving it forward based on that and the newer GUI code base.

Regards,

Benjamin

Benjamin said...

Having said the above - please feel free to download the older Aerofoil version if you want (have a look in http://mirror.viperfang.net/silentdevelopments/downloads/aerofoil/ )

Regards,

Benjamin

FISH said...

Hello,
I was looking into Aerofoil for a possible writeup on my freeware review site: www.freewaregenius.com

However, ever since installing my CPU runs constantly at 100% whenever my laptop is plugged in.

Note: I first installed aerofoil_setup_1.5.0_03.zip (possibly the 32 bit version?). It wouldn't run because, it said, mscvcr71.dll was missing. So I uninstalled it but then I noticed the 100% CPU usage problem. I then installed the 64 bit version (aerofoil_setup_64bit_1.5.1.zip) and the MS VC++ 2010 update to get around another missing dll issue. I still am facing 100% CPU usage. I used the setup to change from "max performance" to "balanced" when plugged in, but still 100% cpu usage whether Aerofoil is running on not.

I would really appreciate any input on this.

FISH said...

Forgot o mention: I am using Windows 7 64 bit on Dell laptop.

Benjamin said...

Hi FISH,

I'm using Aerofoil 64 bit right now on a Dell Studio 1749 (Core i5). I don't know why Aerofoil is affecting your machine the way it is - it is an entirely passive piece of software (if you know how to program have a look at the source code and you'll see). Aerofoil only activates on power events sent out by the Windows events mechanism, or on GUI activity (GUI events). There is no polling mechanism or waiting which would hold up the CPU. The only thing I can think of is that perhaps your machine is currently creating a new restore point (happens immediately after a new install). Can you check task manager and see how much CPU Aerofoil is using? If its a restore point being created you might see a program "Trusted Installer" (Microsoft's app) using all the CPU.

Looking forward to hearing from you,

Benjamin

Benjamin said...

The source code is just 2 small files by the way, one for the UI, one for the power management :)

Benjamin said...

The 2 files themselves in the archive are "About.cpp" (UI, receives power events and makes decisions based on the events), and "Aerofoil.cpp" (the actual methods for switching Aero, sound etc called from the About.cpp). These can be found in the AerofoilNative sub folder.

FISH said...

@ Benjamin,
Thanks for the response. The CPU activity is not confined to a single process; most processes seem to be going nuts. The CPU usage is at 100% no matter what processes I shut down.

It may have nothing to do with Aerofoil; in fact, the only connection I made between Aerofoil and whats going on is that the CPU overusage does not happen when I am running my laptop on battery, so I assumed maybe my recent install of Aerofoil had something to do with it (as in a change made to my power settings, not a running process).

In any case I understand that Aerofoil is a passive software, and that my problem is most likely caused by something else.

Thanks for your prompt response!

Benjamin said...

No problem - if you find its related please post back here (like Aerofoil conflicts with other software, some odd Windows power management settings etc.) and I'll be happy to help if I can.

If you're interested in checking whether Aerofoil is fully uninstalled the only registry settings it adds are:

"Software\Microsoft\Windows\CurrentVersion\App Paths\Aerofoil64.exe"
(64 bit, haven't got the other to hand at the moment, but its probably just "Aerofoil.exe" instead of "Aerofoil64.exe")

"Software\Microsoft\Windows\CurrentVersion\Uninstall\Aerofoil"

(be careful deleting these as if you delete too high up in the registry, e.g. from "\Uninstall" down you could break Windows).

The only directory it creates is the Program Files\Aerofoil directory.

Obviously it also creates shortcuts in your start menu (Startup and under Aerofoil).

That's it (I recommend you run the uninstaller if you want to remove Aerofoil - the above was just reference to put your mind at rest - full details of the above and more can be found in the source file aerofoilinstaller.nsi - it can be read in a text editor).

If you haven't already tried (I see you review freeware ;) so I may be preaching to the converted) I'd recommend running MalwareBytes AntiMalware, updating Microsoft Windows Defender, and running your latest updated antivirus (I use Avast).

All the best,

Benjamin

Benjamin said...

Oh one more thing - Aerofoil does not actually change any Windows Power Management config or registry power settings (it only changes active Windows running power mode which does not have any permanent effect). The only registry settings it **reads** are for the names of the power plans.
If the machine misbehaves in a certain power mode I'd recommend you compare your bad power settings to good power settings to see what is causing the problem.

Hope you get it sorted & best regards,

Benjamin

FISH said...

Benjamin,
I found the cause of the problem, and it had absolutely nothing to do with Aerofoil (it was a badly written program that I had installed days earlier).

I apologize for the confusion (and for cluttering your comments section with a problem absolutely unrelated to your software).

Thanks!

Phil said...

Hello!
First I want to thank you for your program!

I'd like to see the possibility to disable services like SearchIndexer when on battery.

It's also possible to open several instances of Aerofoil. Don't know if it's an intended behaviour.

Kind regards

Benjamin said...

Hi Phil,

Sounds like a great idea - I'll look into disabling services like this when I next update Aerofoil. I'm aware of the multiple instances thing - I had decided not to put any already running checking code in to try and keep the app as small as possible.

Cheers,

Benjamin

Alex said...

Hey there,

I'm struggling to compile the 64-bit version of Aerofoil. I'm horribly new to C++ programming, so I expect it's an elementary error, but please bear with me:

I've downloaded and compiled wxWidgets 2.9.1 (slightly newer, I know, but I hoped it would be fine), and installed the Windows 7.1 SDK. There are environment variables pointing to each installation directory.

When I go to build the solution, the 32-bit versions compile and run fine, but the 64-bit versions fail with the error:

Error 1 error C1083: Cannot open include file: '../../../lib/vc_amd64_lib/mswu/wx/setup.h': No such file or directory C:\wxWidgets-2.9.1\include\msvc\wx\setup.h 91 1 AerofoilNative

When I went to compile wxWidgets in 64-bit, I found it was exclusively 32-bit as I got a ton of errors. But if I point the 64-bit compiler at the 32-bit wxWidgets, I get a platform mismatch!

Any idea where things are going wrong?

And thanks for the awesome application and open source code. It's well-written and commented enough that even I can understand it! =P

Benjamin said...

Hi Alex,

Sounds like you need to compile WxWidgets with the 64 bit compiler too - you can't link the 32 bit WxWidgets to the 64 bit version of Aerofoil.

Cheers,

Benjamin

Alex said...

I understand that stuff compiled for different architectures can't be linked together, but my problem is that I'm really struggling to compile wxWidgets for x64.

I've very carefully gone through all the documentation that comes with wx and on their wiki, but so far haven't had much luck.

Whilst most of wx compiles with many warnings, wxscintilla does not (not that you make use of it). When I go to compile Aerofoil, it looks for the compiled libraries in a different folder (vc_amd64_lib as against vc_lib). And if I move them, then it fails to read files even though they exist...

May I ask how you compile it for x64? I've been attempting to use the Visual Studio 2010 Professional interface; do you do the same? Or do you use the command line? Or something else entirely?!

I'm just trying to get an idea of how people have successfully built it themselves, so I can hopefully emulate their success! =D

Benjamin said...

I simply use Visual Studio Express 2010 with the Win 7 SDK since I can't justify or afford the Pro version just for open source work ;)

Out of interest, what is the need to build the 64 bit edition, i.e. is this part of another project?

Alex said...

No other project; Aerofoil is the only thing that's taken my interest! It's purely an exercise of curiosity -- I haven't done all that much C++ coding, but when I saw this it captured my imagination a little. I wanted to see how it was coded and play around with it a bit.

So I decided to actually attempt to get things working. Nowhere near as simple as I thought it would be! =P

The only reason I have Pro is because I'm a UK uni student and Microsoft love students. If Express works out better, I'll just use that instead!

The particular idea I had was to make the glass toggle another auto option, as on my machine (with an Intel GMA HD on the same die as the Core i5) disabling glass appears to have little to no affect on battery life.

I know I could just ask you to implement it, but where's the fun in that? ;)

Anyway, going massively off-topic! Aerofoil is the only thing I aim to compile, as 64-bit because that's the OS I'm running and, well, why not? It's good to embrace the here-and-now!

What are your thoughts? And thanks for persevering so long. X3

Benjamin said...

TBH I'm not too much of a C++ programmer either :). As for the 64 bit build of wxwidgets - from memory, it was some time ago, I simply changed the flag to Win64 and ignored the warnings as they were in projects I didn't need. I really didn't do anything special apart from making sure the build targets and flags and directory locations were correct. It could be that in 2.9.1 they've changed the x64 build location but I haven't got the source in front of me, in which case you'll need to change the linking folders.

I could be doing some upgrades to Aerofoil in future - the installer and Aerofoil will be upgraded to handle services.

Sorry if some of this is obvious I'll dig out my laptop tonight and see if there's anything unusual about the build. The next update of Aerofoil will likely use 2.9.1 WxWidgets so I'll hit any problems too and I'll do a blog post on how I get around them

Benjamin

Alex said...

Thanks for the patience -- look forward to your findings and updates! =D

Benjamin said...

Hi Alex,

I tried compiling wxWidgets 2.9.1 and had no end of trouble with build target warnings amongst other things. Compiling against it wasn't a problem I could solve in the evening I had spare unfortunately.

When I have enough time to do the Aerofoil update I'll add the full how-to for wxWidgets - otherwise I'd recommend you get hold of 2.9.0 for now :(

If you have any problems building against 2.9.0 give me a shout.

Benjamin

Alex said...

It builds!

Using Visual Studio 2010 and wxWidgets 2.9.0, I have a fully working 64-bit of Aerofoil.

Building it is simply a case of following the guide (in particular opening build\msw\wx.dsw and converting all projects) and setting the active configuration to Release/x64.

In detail: go to Build > Configuration Manager. In the window that appears, select Release under Active solution configuration, and New... under Active solution platform. In this window, select x64 as the platform name, and copy settings from Win32. Don't worry, 32-bit settings are converted to 64-bit settings.

After closing that window and the Configuration Manager, go to Build > Build Solution, and twiddle your thumbs for a while. Ignore the warnings; when it's done you have a working wxWidgets build!

With that you can now build Aerofoil. In Aerofoil's solution, select Release and x64 as the active configuration (by selecting them in the Configuration Manager), and Build Solution. After a few moments, you have a compiled and working 64-bit Aerofoil!

Sorry for the long post, but I figure I'd post back the process I went through to get it building. It might save you writing a guide, at least for 2.9.0. ;)

Thanks once again, Ben! =D

Dave said...

Thanks for the awesome tool. I've been looking for something lightweight and minimalistic for a while and Aerofoil works wonderfully. The only question I have is how to disable Aero Glass toggling. I'd like to leave Aero Glass on all the time while automatically managing the other options, but I couldn't find it anywhere.

In any case, keep up the great work!

Anonymous said...

I found a bug on the installer.

If I rename it to something like "Aerofoil 1.5.1 x64.exe" the installer kills itself and does not start, because it has "Aerofoil" on its name.

Benjamin said...

Thanks anonymous. I noticed this bug too a while ago and is why I named the installer as "setup". All I can work out is that it's something to do with NSIS (i.e. a bug in the installer creator software itself to do with the installer name conflicting with the Aerofoil.exe file name inside the installer). Next time I do an update* for Aerofoil I'll use an updated version of NSIS that will hopefully fix this issue. * I've no immediate plans to do an update.

Benjamin

Anonymous said...

Is there any way to just disable the glass effect (and not change to the ugly "basic" theme)?

I tried messing with the source code, without any luck.

Mark said...

One thing I've found. . .

I use a power plan called "Mark's Plan" that is customized to my liking.

When I choose that plan in Aerofoil, I get an error after launching Aerofoil that says, "Aerofoil has stopped working"

If I change it back to one of the default plans, it works fine.

I mention all this to say that I'm not sure if it is my customized plan that is screwing it up or the apostrophe in the plan name. . .

But I thought I'd mention it if anyone else is having problems.

Benjamin said...

Hi Mark,

Not to say that isn't what is causing the problem but Aerofoil doesn't care about the name of the profile as it is selected and used based on the profile's (language independent) internal id. If it is a problem with that profile it could be in displaying the name and one way to find out would be to rename the profile if you have a few minutes?

Benjamin

Katy said...

I have installed the 64 bit version on a notebook running Server 2008 R2 x64 and it crashes after reporting that Aeroglass is disabled. Had to uninstall, unusable :(

Benjamin said...

Hi Katy,

It's never been tested on Windows Server 2008 64bit running on a laptop (which is a bit of an unusual combination!). Unfortunately I can't replicate the problem here, what I would suggest is that you have a try of one of the earlier versions which are 32 bit (1.5.0) or even a much earlier .net version (1.4.5) from here: http://mirror.viperfang.net/silentdevelopments/downloads/aerofoil/. I suspect it may have something to do with server power management or Aerofoil message display (formatting strings) which the server edition may handle differently. 1.5.0 handles messages slightly differently and 1.4.5 uses .net which won't have string trouble.

Benjamin

Benjamin said...

Correction: 1.4.3 is the .Net version, not 1.4.5.

Anonymous said...

Benjamin,

Any chance you could say which dlls EXACTLY Aerofil needs from those Microsoft Visual C++ 2010 Redistributables? I don't like to install those, so I'd rather just copy the dlls Aerofil needs into system32 dir manually.

Thanks so so much in advance!

Benjamin said...

Sorry Anonymous I don't *exactly* know since it's not just Aerofoil itself built against VS 2010 but WxWidgets statically built and linked too (needed for the UI). As far as I'm aware Aerofoil itself mainly uses just the replacement power profile dll (powrprf.dll), although there is a Vista upwards media dll used too, and one to manipulate processes. The source header file contains the following - note all of the wx dependencies - you'll need to trace through WxWidgets source to find the relevant dlls used in the WxWidgets 2.9.0 part:
wx/wx.h
wx/cmdline.h
wx/taskbar.h
wx/stattext.h
wx/hyperlink.h
wx/font.h
powrprof.h
About.h
dwmapi.h
powrprof.h
tlhelp32.h
windows.h
mmdeviceapi.h
endpointvolume.h
WinUser.h

You should be able to look the Windows *.h (i.e. the non prefixed "wx/") files up via Google to establish the other dlls, but tracing through WxWidgets might be a nightmare.

Windows 7's SP1 should already contain the necessary runtime if that's any help.

Good luck with your wrapper code/custom Windows install whatever it is you're doing :)

Hope this helps,

Benjamin

Anonymous said...

Is it possible to add a don't disable Aero Glass command line switch?

I use a custom theme and just want the transparency to turn off and not change to the Basic theme.

I'm able to get tranparency to turn off on changing to Power Saver but Aerofoil changes to Basic theme.

Benjamin said...

Anonymous - the choice of theme is Vista/Windows 7's doing, I just call the API to disable the DWM effects (DwmEnableComposition).

Anonymous said...

I've just discovered and installed your app and have a small feature request that I would love to see in future versions.

The disable services option mentioned above sounded great but I would also like the ability to choose whether or not the application displays an icon in the system tray. I know there is an option to hide it using windows but as I currently do not have any icons hidden, that would still take up the same amount of space on my taskbar.

I'm only using this application as a simple program to automate switching between power schemes when my laptop is unplugged. I don't necessarily need a tray icon displayed.

I would take advantage of your source code availability but I have yet to learn C++ programming.

Thank you for your consideration.

Neto said...

Hello everybody, i'm having a message error on start up on Windows 7 x64, i receive a message "unknow long option 'bater'" and after click ok on this message i receive another window with command line usage options like "--noautomute, -- noautoplan, i click ok and aerofoil works normaly. What can i do to resolv this? I uninstalled and reinstalled and the error still appear. thanks, Neto.

gab said...

is it possible to switch to a different theme (i.e. Windows Classic) instead of Windows Basic? Classic looks better than basic imo.. haha...

Benjamin said...

Hi gab

Unfortunately not - Aerofoil doesn't change themes - it simply makes a call to Windows to disable the "dwm" (basically the Aero effects) - it doesn't control - or have any control - over the look that Windows then applies.

Neto - the shortcut icon you're using has a fault, please see the included readme on how to customise the parameters for your shortcut (which should allow you to fix the fault).

Cheers,

Benjamin

Barry said...

Have you looked at testing the software on Windows 8 yet? I have installed on the release preview of Windows 8 and it installs and works great except it does not disable Aero when on battery. Everything else works fine.

Thanks for a great product! I have been using it for years.

Benjamin said...

Hi Barry,

As far as I know the final release of windows 8 will not have aero http://www.winsupersite.com/article/windows8/windows-8-release-preview-rip-aero-20032012-143133 .
I also don't have a Windows 8 setup to test, I might do a final win 8 build with aero options removed and a new icon but there isn't much in the way of ui tweaking I think can be done.
Needless to say I'll revisit this if MS change their minds.

Thanks,

Benjamin