Persistent Windows 1.0.7 released – NotifyIcon mingling with WPF

Recently, I’ve been distracted from my pet projects due to various life events and also Diablo 3 – Season 2. While I still haven’t been able to get new Random Coding or Top Coding content out, I did find a convenient survey plug-in for Word Press to get some feedback on Persistent Windows.

Based on some user feedback, Persistent Windows now runs in the SysTray and I removed the platform setting so it should work for people who are on 32 bit versions of Windows. I don’t personally have any 32 bit machines anymore, so I’m going to just wait for feedback to find out if it works or not. If I get feedback indicating that it still doesn’t work, then I may fire up a VM to test, validate and resolve.

As an interesting technical detail of this change. There is no native “NotifyIcon” implementation for WPF(At least none that I could find). I did find some other custom solutions on the internets for those who want a WPF context menu and all that jazz, but there really isn’t value in it for the scope of this tool. Thus, I converted the WPF shell project to a class library project, created a brand new WinForm shell project(which frames the SysTray icon) then referenced the WPF shell dll to re-use the existing diagnostic screen that I created, but also get the SysTray feature in.

Go check it out if you haven’t already – Persistent Windows

The code is open source and available to view for those who are curious and I know it’s a really old problem that seems to have been answered in a number of different ways in different places, but here is yet another example of how you can do so.

Thanks again for all the kind words and the awesome feedback!

Keep on coding on!

PersistentWindows 1.0.5 and other updates!

Well 2014 has come and gone in a blink of an eye! Updates have been delayed due to various priorities as I was blessed with the birth of my second child the past year. I haven’t posted a new video, nor made updates to my little pet projects because it’s really hard to when you have an infant sleeping in the room adjacent to your “recording studio/living room”. That’s Manhattan living for you, but I still love it!

Regardless, mostly because of my amazing wife, I finally am able to get a full nights rest and continue delivering on my hobbies and ideas.

So first project update. I received such a motivating email from a random user who picked up PersistentWindows thanking me for the time I spent on it. I don’t ever expect to make any money off of that project and it was really intended to solve a problem that I was constantly dealing with at work myself. I did recently make some updates, based on some feedback and will continue to make some slow progress on the project, but just mostly out of necessity when pain drives change. 1.0.5 is released and has slightly smarter logic on when/how to capture the modified windows. Before, I was trying to capture based upon Windows Events, specifically if I received an event of a power change mode, I was going to capture the window changes and then when I receive a display change settings I could ignore the windows changing positions. However, what was actually happening was that the windows were moving prior to power event being broadcasted and thus my logic failed.

Now, I just wrote some logic that tries to determine if a number of windows larger than “X” change within one second. Currently X is 4 and My Theory is that no human can reliably modify the location of 4 windows in one second. If it turns out that people can, then I will bump up X or make it configurable, but so far at work that setting is doing just fine.

Second project update, I have received a few more awesome comments from generous people asking for more and as the subscribers are almost hitting 200, I’m disappointed that I can produce more content at the moment. I do have another video ready, based on user feedback, the problem is solved and script written, it’s just that almost every time I want to record I wake up the little one and have to stop. Some of my friends have suggested, “Make a funny video”, “Bait people in with a intro photo” or some other suggestion that would basically taint the reason I’m creating videos in the first place. My goal is to teach and spread knowledge and there are already so many more people out there funnier and more attractive than me. So with that, I will stay on topics and themes and hope that some how I can be a tiny impact in the direction that gives me satisfaction.

So with that, I do hope that this month or next I can finally get out another video!

“Keep on coding on” my fellow programmers!