Justin 的个人资料Various Technical Topics照片日志 工具 帮助

日志


10月16日

Windows Environment Editor released on SourceForge

I finally got around to submitting the Windows Environment Editor to SourceForge. You may recall this as the project originally created for the ill-fated OCI Summer of Code programming contest. We haven't done much work on it since then, but the major bugs have been addressed, and I've been using it regularly, as have a few brave volunteers. I think it's the best of the many replacement environment editors currently available, but you can judge that for yourself.

Technologies

One of my primary purposes for this project was to learn how to create GUI applications using the relatively new Windows Presentation Foundation (WPF 1.0) for .NET. This framework, while similar to others in many respects, is really something fundamentally different than libraries like Swing, WinForms, GTK, MFC, etc. For more information I recommend reading http://arstechnica.com/reviews/os/pretty-vista.ars

One of the benefits of WPF is the separation between GUI design using a markup language (XAML) similar to HTML, and a programming API for making that GUI work. In theory, this will allow designers to use programs like Microsoft Expression Blend to make applications like mine look better. For this reason, we tried to express as much of the GUI as possible using XAML, rather than reverting to code. We also wasted huge amounts of time using Blend to play with the GUI design, but in the end we gave up and went with a simple (ugly?) design that eschews all the fancy gradient effects.

Of course, for reasons best explained in my previous posts, I used Visual Basic 2005 as the programming language. All told the application is something less that 2000 lines of code&XAML.

In the future, maybe I'll port everything to the upcoming new releases for WPF and VB.

Features

  • Resizable dialog allows viewing more variables at once.
  • System and User settings are contained in collapsible sections.
  • Search box to quickly jump to a variable for editing.
  • Modify variables directly in the search box using Variable=Value syntax.
  • Edit variables directly without having to popup an additional dialog.
  • Both keyboard and mouse interfaces are supported.
  • Keyboard shortcuts for common tasks.
  • Size, Position, and other state is remembered between runs.
  • Vista support for running as a user or administrator.
  • Many small details enhance the user experience.

Conclusion

I estimate that this application represents several hundred hours of work by myself and Ngan that may have been better spent playing Scrabble or Age Of Empires. I hope that at least a few people find it useful. If you have any questions, want to contribute features or fixes, or just want to try it out, I encourage you to check out the project.

https://sourceforge.net/projects/winenvedit/