Hello! Classic Shell looks very impressive. However, it does a lot. I know some things are configurable, but I am really only interested in one thing:
Only a fix for the left pane autoscroll bug in Windows 7 Explorer. If this is not possible, I have some
technical questions about how to make such a small program myself.
I took a look at the source code and the nice article about it here (thanks Mr. Beltchev!):
http://www.codeproject.com/Articles/45430/Classic-ShellFrom what I understand, the solution Classic Shell implements is to make that C++ hook/callback function, which prevents (one of?) the TVM_ENSUREVISIBLE messages from getting sent. Is that correct?
I am more familiar with C# than C++, so the code and its context was hard for me to understand. Using Spy++ 8 and BlitzPlus, I was able to find and programmatically get the handle hwnd of the tree view that sends the TVM_ENSUREVISIBLE messages. BlitzPlus is a language that can use a custom DLL's functions written in C++ if I declare them. I don't have much experience with hooks and callbacks-- and I'm afraid I might cause problems or lock up my system.
I wish I could eradicate
all auto-scrolling behavior in Windows 7 Explorer, including the "feature" of auto-scrolling an expanding folder to the top of the pane. I guess it's trying to show me all the subfolders, or as many of them as it can show. But it is jarring and I'd prefer to do the scrolling myself. Whether it scrolls to the top or the bottom, it is annoying for me because it's easy to lose my place and become momentarily distracted, having to re-navigate that "navigation" pane myself.
The bug fix, as performed in Classic Shell, seems to ignore
ONE of the TVM_ENSUREVISIBLE messages. Or is it any TVM_ENSUREVISIBLE message? The bug happens
randomly on folders that haven't been opened that session, correct? So for the times that the bug doesn't occur, can it avoid the "feature" of autoscrolling which puts the expanding folder at the top? I.e. can a small program be made with a hooked callback function that tells Explorer's tree view to ignore
ANY autoscrolling behavior, including the feature of placing it at the top? I'd settle for just the bug fix (to prevent it placing it at the bottom), but eradicating any autoscrolling in that left pane would be ideal.