avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Saturday July 20, 2024, 1:29 pm
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - VideoInPicture [ switch to compact view ]

Pages: prev1 ... 11 12 13 14 15 [16] 17 18 19next
Circle Dock / Re: Windows Start Menu Shadow Residue Bug
« on: August 19, 2008, 11:34 PM »
I searched the web and other programmers are having the same issue with the shadows not going away. Apparently, Microsoft did not implement the shadow ownerships very well. I just wonder how Object Dock gets the start menu to show up with out shadow residue.

If you want to remedy the problem, just turn off the "Show shadow under menus" option in your visual styles in Windows.

Circle Dock / Windows Start Menu Shadow Residue Bug
« on: August 19, 2008, 08:09 PM »
Here's a bug I have not been able to figure out. If you have Windows XP or Vista and you have enabled the "Show shadows under menus" style in your visual styles, then the Windows Start Menu leaves a persistant shadow on the desktop when Circle Dock is used to open it. The screen shot below illustrates my point:


The code I'm using to call the Windows Start Menu is quite simple (C#):

IntPtr StartMenuHandle = (IntPtr)Pinvoke.Win32.FindWindow("DV2ControlHost", null);
IntPtr taskBarWnd = (IntPtr)Pinvoke.Win32.FindWindow("Shell_TrayWnd", null);
IntPtr startWnd = Pinvoke.Win32.FindWindowEx(taskBarWnd, IntPtr.Zero, "Button", "Start");

Pinvoke.Win32.SetWindowPos(taskBarWnd, IntPtr.Zero, 0, 0, 0, 0, Pinvoke.Win32.SWP_NOSIZE | Pinvoke.Win32.SWP_SHOWWINDOW |
Pinvoke.Win32.SetWindowPos(startWnd, IntPtr.Zero, 0, 0, 0, 0, Pinvoke.Win32.SWP_NOSIZE | Pinvoke.Win32.SWP_SHOWWINDOW |
Pinvoke.Win32.SetWindowPos(StartMenuHandle, IntPtr.Zero, StartMenuBestPos.X, StartMenuBestPos.Y, 0, 0, Pinvoke.Win32.SWP_NOSIZE |

The StartMenuHandle is the handle to the start menu itself and the other handles are for the start button and the taskbar. I think this may actually be a bug with Windows itself. Any thoughts or solutions?

64 bit Vista error at line 151 in MainForm.cs

Happy to help debug 64 bit issues


Hello Mike, welcome to DonationCoder. The 64-bit bug was resolved with the Alpha 6 build ( It was caused because there was a 32-bit dll file and the program was not compiled specifically for 32-bit but it is fixed now. But, I should probably upload the new source code with the changes made to allow it to work.

Oh yeah, just so that you know, you can crop your thumbnails by placing your mouse over one and holding down the Ctrl key. Borders will pop up around the live thumbnail that you can use to crop it. Also, this isn't well documented but if you double click near the bottom of the live preview near the middle, it will restore the thumbnail to it's starting size and no cropping. Double clicking on the left bottom or right bottom zooms in and out.

Just so you know, i'm using 2 monitors and by default, the Dock appears right at the center of the 2 screens, that means half in one and half in the other one. I think it would be better to make it appear at the middle of the main monitor. Also, if I enable the option to make it appear at the cursor`s position and then disable that option, the dock will appear at the last position it was. I would expect it to be at the default position (center of the main screen).

In the settings menu, I will be adding in options to specify the position of the dock. This should address those issues. Options would be like:
*Always appear at....
     *Primary Monitor, Monitor 1, Monitor 2.....
            *Left, Right, Top, Bottom
     *Specific Position
*Allow user to move dock....
*Follow the mouse

Of course, there has be a level of precedence for these options that I have to work out.

Oops, there is just one little thing that does bugs me about it.

I have googled for hours in vain and I never came across it.  :-*

I greatly thank you both, jgpaiva and videoinpicture, very much for making my wish come true.



Glad you liked it. I haven't had much success in spreading the word about Video in Picture even though it is one of my most useful and used applications on my computer. Perhaps people don't like that it's Vista only?

With a 1 GB graphics card, you have about 4 times as much GPU memory as I do and probably a better processor on that GPU.

As for sliding the previews out of the way to see pop up windows beneath, you can try right-clicking on the tray icon and mess around with the "Alignment" and "Pin Previews To..." options. If you choose "Snap to Grid" in "Alignment", you will be able to drag all your previews at once by just dragging your first preview on the left.

For the 64-bit people out there, I have uploaded the x86 compiled version of Circle Dock to and I have had a person on another website tell me it works. Thanks for the help!

I'll now focus on getting the settings panel redone and finishing up some parts of the code. For the final release of 0.9.2, I'm further targetting to:
-Have animations for drag and drop operations, deletion, and reordering the dock items
-Smooth out the animations, if possible
-Write the position functions for the oval and spiral docks as well as code in the settings to customize their size and features
-Make the dock always not top/not always on top
-Keep trying to multi-thread the application
-Improve the drag and drop support for virtual folders in Windows (some don't like to be drag and dropped) or add them into a menu like in 0.9.1
-Option to always keep the dock in one position or have it follow the mouse
-Ability to have the dock slide into and out of view by moving your mouse to the edge of the screen (like the taskbar autohide)
-Finish implementing the C# mouse hook so that we can get rid of the Orbit.Dock.dll file and have it run in native x64 when possible
-Improve the speed of opening up the dock folders when there are many items and animate the opening
-Code in the portibility mode functions
-Write up documentation for the end users about the features of the dock.

I think those are the main points I'm shooting for right now and they are all possible to do without taking a long time to do it. With these features implemented and tested to be stable, I think it would be really nice dock to use. I could then start planning the next set of features I want to implement and look at how Circle Dock could work with plugins. In the long term, I'll be aiming to have some support for docklets so that the dock can be extensible.

Welcome aboard! I'll try to compile an x86 version on my computer and post that version up for now so that people with 64-bit computers can test it while I rework the hook to make it run on 64-bit without x86 compilation.
-VideoInPicture (August 18, 2008, 09:15 PM)

Thanks, I've noticed that you are already planning to translate your app in other languages than English so I've included a French.ini file with this post in case you wanted to test it. I'm french canadian so I guess I could help with the french translation. Sometimes the french characters can cause problems so I thought it would be a good idea to test it early in the development stage.

Thanks, that super. I haven't even told anybody how to translate it yet. If you want to test out the French on your system, go into the Settings Folder -> Config.ini and under [Language], change the path to your file.

I'll be sure to give people credit for their contributions.

I confirm, by setting Platform Target to x86 I was able to compile and execute CircleDock on my Windows Vista Ultimate 64-bit.
Can't wait to see the next improvements. If you need assistance to test some functionalities, I will gladly help.

Welcome aboard! I'll try to compile an x86 version on my computer and post that version up for now so that people with 64-bit computers can test it while I rework the hook to make it run on 64-bit without x86 compilation.

BTW, which other problems did you encounter?

OK, I've taken a cursory look at the source. The crash happens on line 151 in MainForm.cs, upon a call to StartHook(this.Handle); - my guess is that this hook is in a 32bit native DLL, which obviously can't be loaded when dotNET jits CircleDock for a 64bit target CPU. By creating a build configuration for "x86" (instead of "any CPU") and copying some files around manually, I was able to get CircleDock running (although there's some other problems, but we'll focus on those later).

Now, it's showing that I'm not exactly super familiar with dotNET :-[ - I have trouble seeing how the various DLL files are generated; does Orbit.Hook.dll , for instance, have corresponding source files in the project? I only really see it referenced in the source via a DllImport statement, so I'm wondering :)

Yes, you appear to be right, StartHook(this.Handle); is a 32-bit DLL. It was a component I took from the Orbit Dock project (a circular dock that was abandoned a few years ago before completion). The Orbit Dock project files I have are quite unstable and I don't think it was meant for 64-bit OS's. This function resides in the Orbit.Hook.dll file as you have mentioned. It is basically used for hooking the middle mouse button to toggle the visiblity of the dock. It is written is C++, which doesn't really flow with the rest of the project because I think it was written by someone else than the author of Orbit Dock.

However, I have a solution, we can just remove Orbit.Dock.dll altogether and all the hooks currently in Circle Dock and replace them with a C# hook for the mouse. In the source code you have, there is a project called "Global Hook" and a file called "UserActivityHook.cs". We can easily implement the mouse hook with it. I will work on an Alpha 7 with this.

For the DLL files in the Debug folder used to execute the program, I just manually copied the Orbit.XXXXX.dll ones and the AMS.Profile.dll because they were already built in other projects. The GlobalMouseKeyboardHook.dll is generated by the Circle Dock solution from the "Global Hook" project when you build the solution. The dll files you see in the main Circle Dock project folder is what the IDE references and it will complain if they are not there. They are not used for execution.

Can you tell me the steps you took in compiling the "x86" version of Circle Dock and which files you moved around?

P.S. If you look in the License.txt file in the main Circle Dock folder, you will find the links to the AMS and Orbit Dock projects.

I think I may have a solution....It's 90% there and is based off of an open source project. I'll see if I can make it work.

Alright, the source code for Circle Dock 0.9.2 Alpha 6 is up at This is a new link and isn't on the Circle Dock website yet. It is a 21 meg download.

In this version, I've added unhandled exception handlers that will provide detailed error messages. Maybe that will help with debugging.

Just download the file, unzip and open the CircleDock.sln file with C# and the whole project will be loaded. To debug it, press F5 in Visual C# Express or click on the green arrow in the toolbar menu.

Hopefully f0dder or someone with a 64-bit machine can get rid of the 64-bit incompatibility.

Eric Wong

I was going to come in here and suggest but I see that jgpaiva has beaten me to the punch. I think it might work for your needs but there are some quirks about it that you need to know. I haven't worked on the program for quite a while because I originally wrote it for myself so that I could watch online videos in the Window size that I wanted. It works for me and I run it every time I watch an online video.

From past users, I know it works in 64-bit Windows. Currently, the program will only show resized, live preview thumbnails on the primary monitor of your screen (no multi-monitor support). You may experience a slight slow down in your system for an unknown reason. I think having many live thumbnails in a resizable Window taxes your GPU although not your CPU. It isn't polished, but it works.

jgpaiva, what other bugs have you experienced?

Hey f0dder, you should download Microsoft Visual C# Express at so you are ready when we get the files up.

Talking to mouser right now about getting some hosting space... Hopefully we can resolve the 64-bit issue within a couple of days. When you see my code, please excuse some of the messiness and uncommented code. I was working on it up to when I found out Lifehacker was covering it and people started e-mailing me. But, I promise to eventually get the code commented because I think this is very important.

Hm, I don't know if there's such a thing as 32-bit compatibility mode... at least not with the right-click property stuff. And I don't know if there's a way to tell the dotNET jitter to jit for 32bit instead of 64bit.

All I can see is that the crash happens in the CircleDock.MainForm constructor, near the end of the method... debugging dotNET code without source is a bit tedious :)

Can you program in C# and do you have Microsoft Visual C#? If you do, I can try setting up a special space somewhere for you to download it.

Nevermind about that compatiblity setting in the Properties panel. Someone has tried it and it didn't work.


Okay, something for the 64-bit users out there. Have you tried running it in a 32-bit compatibility mode by changing the settings in the Properties pop-up of the exe file?

I have set up a Source Forge account but it's going to need a few days to get approval. I'm trying to decode the 64-bit error messages I've seen here to see if I can understand the problem better.

Weird - I still can't grab from the wikidot URL, even tried with wget to make sure I wasn't getting a cached copy of the error page. Anyway, I got the attached version from your post, and it still crashes.

But I'm sure we'll eventually be able to sort things out :)

Darn it. Well at least I know it works for 32-bit from some people that are using it now. I just need access to a 64-bit system somehow. Guess I better get cracking at that source-forge thing.

The link works for me. Maybe the servers are updating their caches.

I've uploaded Circle Dock 0.9.2 Alpha 5 to this message so you can try downloading it here:


PS: The file does not exist. for the new download URL.

Fixed. It's working now.

Okay Everyone,
I think I might have figured out what was cause the crashes on 64-bit machines and the question marks for Dormouse. When Circle Dock references a file within it's own folder, it uses ".\" to signify that the file is within it's own folder. For example, if I wanted to reference an icon in the Circle Dock folder it would be ".\System\Icons\Some Icon.png". However, some systems cannot handle the ".\" shorthand and I must specify the full path in the arguments to create the images in the dock.

I tested this out on a Windows XP Professional SP2 machine with .Net 2.0 and I was able to replicat what Dormouse was getting and the error message that popped up looks suspiciously similar to the ones from the 64-bit machines.

Try Alpha 5 out and it should be better:

Eric Wong

Oh, and make sure to clean out any temporary or auto-generated files, stuff like .pdb and .pch (dunno if those are used in dotNET projects?) can grow quite large.

Now I'm curious if a 64-bit Vista user will have the same problem...... Hmm. I'll have to wait and see.
-VideoInPicture (August 17, 2008, 09:34 PM)
Both versions crash on Vista64 as well.

I will make the source files as small as I can. We'll see what happens.

As for some good news, I think I figured out what was causing the appearance of questions mark images for Dormouse and the crashing for the crashing for the 64-bit users. I'm uploading Alpha 5 right now. I have tested it on Windows XP Professional SP2 with .Net 2.0 and it works fine now with none of the question marks showing up.

I'll post back when the upload is finished.

General Software Discussion / Re: How to extract icon of a folder?
« on: August 17, 2008, 11:10 PM »
I would like to know two, preferably with a code sample so that I can incorporate in into Circle Dock. However, the extracted icon will be a maximum of 126x126 in size which might not look good blown up. I can extract icons for all regular files and folders but I can't get the thumbnail preview icon of a folder.

Pages: prev1 ... 11 12 13 14 15 [16] 17 18 19next