If you haven’t read about the GrabAPicture application yet, you really need to do so before we embark on the update described in the upcoming series of posts. You can find a list of these posts using a simple search. The GrabAPicture application covers a lot of ground and shows how to perform a wide range of tasks using VB.NET. You’ll have to read the posts to see everything it does, but you’ll gain an understanding of working at the command line, working with Windows API using P/Invoke, and creating a solution that has both command line interface and GUI. You’ll even see how to create a shortcut to ask GrabAPicture to perform tasks automatically.
It isn’t often that I can even demonstrate a program this large in a book, so this series of entries has given me a chance to do something a little different. Being able to interact with some of you while I’ve been writing the posts has also been a new experience. So, this series of blog entries has been interesting for me too and I plan to do others in the future. The next application might rely on C#, but whatever language it uses, it’ll be interesting.
As capable as GrabAPicture is, it has some limitations that you might want to address. That’s the purpose of the series of posts that follow. Now, you can extend GrabAPicture in any number of desirable ways, but let’s start with these ideas:
- Add configuration options to the command line.
- Make it possible to configure wallpaper to use the new Windows 7 settings.
- Add a browse button to the main form.
- Provide a snapshot of the highlighted image.
These ideas would make a good starting point, but I’m open to any ideas you might have. If you’ve had a chance to play with the application a bit, you’ve probably noticed some deficiencies. I can’t guarantee I’ll correct them all, but I’ll give every deficiency you note some thought to determine whether a fix is doable. Let me know what you’d like to see as additions at John@JohnMuellerBooks.com. You can find the next post in this series at Improving the GrabAPicture Application (Part 2).