Archive for the 'Tool' Category
Update to Window Hider (Kill Switch)
So I got to thinking the other day that another potentially nice feature for WindowHider would be a kill switch. In case of course your boss knows you use WindowHider and comes by looking to see what you are up to, with then intention of double clicking on WindowHider in the task bar and choosing to show the windows.
So ofcource I went ahead and added a kill switch. Go to the settings page and configure another key combonation, just like you do for the key combo to hide windows. Then when that key combo is triggered any hidden windows will be closed and so will window hider itself. Go ahead and download the newest version at the WindowHider page.
5 commentsUpdate to ArrangeByImage
As I attempted to anoy those around me with ArrangeByImage today I realized one major flaw. The original (now updated) code did nothing about the align to grid option on the desktop. I fiddled a bit and found the style that sets that on the desktop and I am now removing “Align To Grid” when you run the program. And in the interest of saving others the effort to find out how this is done here is a code snippet in c# / Win32API. Note this will actually work for any listview which is technically what the desktop is.
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern IntPtr SendMessage(HandleRef hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpszClass, string lpszWindow);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
const uint LVM_SETEXTENDEDLISTVIEWSTYLE = 4150;
const uint LVM_GETEXTENDEDLISTVIEWSTYLE = 4151;
const uint LVS_EX_SNAPTOGRID = 524288;
private void turnOffSnapToGrid()
{
IntPtr programmanagerWindow = FindWindow(null, "Program Manager");
IntPtr desktopWindow = FindWindowEx(programmanagerWindow, IntPtr.Zero, "SHELLDLL_DefView", null);
IntPtr listviewWindow = FindWindowEx(desktopWindow, IntPtr.Zero, "SysListView32", null);
HandleRef desktopReference = new HandleRef(null, listviewWindow);
int CurrentSettings = (int) SendMessage(desktopReference, LVM_GETEXTENDEDLISTVIEWSTYLE, IntPtr.Zero, IntPtr.Zero);
IntPtr ptr = new IntPtr(CurrentSettings & ~LVS_EX_SNAPTOGRID);
SendMessage(desktopReference, LVM_SETEXTENDEDLISTVIEWSTYLE, IntPtr.Zero, ptr);
}
No comments
Updated ArrangeByImage
Made an update to ArrangeByImage so it now supports command line switches. This is in keeping with the general purpose of this site which is to annoy your co-workers. Now you can run ArrangeByIcon on a friends computer and watch their confused face. Have Fun!
No commentsArrange By Image
New app released, ArrangeByImage. My co-worker Mike and I modified some code he found and came up with this. Check out the link for full back story, screen shots, and the app with source code. ArrangeByImage allows you to arrange the icons on your desktop based on the black lines in a bitmap image.
No commentsMajor Update to Window Hider
I spent the last few days doing a major overhaul on Window Hider. Rebuilt the GUI, added some features, and overall just beefed it up. I also added a page dedicated to Window Hider since it is one of the most popular downloads.
I expanded the hot corner features a little to allow you to choose if the hot corner will only hide the windows or if it will toggle hide and show. I added this feature mostly because when you lock your computer it puts the mouse at 0,0 and will unhide your windows without your knowing it. Also it is a little to easy to hit that corner on accident while your boss is standing there. Set this feature on the settings page.
Second I added the ability to filter the processes based on their title. So now you can have two copies of Internet Explorer for example, one with work on it and the other with hulu or some other favorite site. The filter just looks to see if the title contains the string so partial strings work as well. Further you can leave the process name field blank to just hide all processes by name.
Third I improved the process adding method. Now there is a form that pops up and gathers information so you can more easily define what your looking for. Also I added an icon on the add process dialog that when drug over the top of other windows will fill in the boxes with that windows process and title.
No comments