topbanner_forum
  *

avatar image

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

Login with username, password and session length
  • Thursday April 25, 2024, 5:35 am
  • 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 - Markham [ switch to compact view ]

Pages: prev1 2 3 4 [5] 6 7 8 9 10 ... 15next
101
*** Something that may help track this down *** When middle click toggle is not working, other apps do NOT register the middle click. Something is still intercepting it. As soon as I quite CD the other apps register the middle clicks. That may indicate a different part of code is contributing to the issue.

Thanks for that! It does give me a clue as to where to start looking! It seems that the dotNet Garbage Collector is interfering with the low-level, global mouse event handler. I have added some protection to the various handles and delegates (ie the pointers to the callback routines); I have also forced Garbage Collection to occur immediately before setting the global hooks. Together I hope this will overcome the problem.

To test this, I have added a label to the Toggle Button and I'd greatly appreciate you testing the attached beta with the following settings:
  • On the Visibility Tab ("Toggle Visibility"), enable Show Toggle Button when hidden
  • On the Visibility Tab ("Show Dock"), enable any one (or more) of the Show Dock when I Move My Mouse to" options but choose an edge that you're unlikely to venture too close to under normal circumstances.

You can now hide the Dock and move the Toggle Button to a convenient location on the screen such that its label is visible. The label will continuously report on three mouse activities:
  • As you move the mouse pointer around the screen, the Pointer's X and Y positions are shown
  • When a mouse button is pressed, the label will report "Mouse ButtonID Down", so when you press the middle button - to toggle visibility - you should see "Mouse Middle Down"
  • When a mouse button is released, the label reports "Mouse ButtonID Up"
All these reports come directly from the low-level handler, so we should now get some idea if and when the event handler stops working. These are the only three global mouse events Circle Dock is interested in, it doesn't care about double-clicks or any movement of the mouse scroll wheel. The latter is only monitored when the Dock has focus and Circle Dock uses normal Windows Forms reporting.

Adding a modifier key like CTR now works correctly. Previously if I had a modifier key checked I could still toggle without pressing the key. It now correctly requires the key to be pressed.
Ah! That's interesting. I have also made similar modifications to the keyboard handler.

The splash image when opening dock settings looks much better now. I know that is pretty minor but those little things count too.
I agree, it's a better image :)




Mark

102
The middle button toggle works, but CD still "steals" it from other apps (Opera for example - no page scroll, no tab close on middle click) - with or without that new option checked.
That can happen if you've configured Circle Dock to be the top-most application. It's not the mouse-click that is stolen but rather the application focus. Try setting the Z-Order to "Normal".



Mark

103
There was an unfortunate bug in the 64-bit executable I uploaded to this thread yesterday which made it difficult to return from a lower level to a higher, or top level - the left mouse button wasn't acted upon when clicking on a lower level's Centre Button. This, incidentally, was caused by an "else" clause being in slightly the wrong place which came about when I added enhancements to the Centre Button handling. (The Centre Button can now be configured to provide to do other actions than show the Start Menu.)

I have revised the global mouse handling routines and removed the automatic "repair" facility which is no longer required and was actually causing more problems than it fixed. Should you lose touch with the mouse, one of the Tray Icon's context menu items can do this manually. However, I think it's unlikely you'll use this!

I have added a new configuration item to "Visibility" (General Settings), "Do not pass mouse toggle on to other applications". The recommended setting is to enable this option which reserves the mouse button used for toggling the dock's visibility for Circle Dock's private use. This prevents unwanted side-effects particularly noticeable when the middle button performs this function and the foreground application uses the middle button to set scrolling (eg Microsoft Office, Open Office, Firefox etc).

A revised beta of the 64-bit executable is attached. Do NOT download this unless your Circle Dock configuration is set for the default (English) language; please wait for the official v1.56 release. Updated language files are not included.



Mark

104
Worick and Sarge:

Thank you for looking at this issue. Like the "X_Mouse Button Control" utility, Circle Dock does use SetWindowsHookEx() to insert its handlers into the chain. The problem was that the hook was somehow getting lost in certain circumstances - usually on Windows 7-64bit. Unfortunately it was - and still is - an issue I can not replicate here.

However I have been reading up more about dotNet and in particular about its automatic Garbage Collection. This examines the application's working space, frees no-longer-required variable space and reorganises the working space so that the freed areas are joined to produce larger blocks which are then deallocated to the OS pool. Now C# doesn't have pointers per-se but it does have "Delegates" (which are a hybrid equivalent to C/C++'s pointers) and as SetWindowsHookEx() requires a pointer to a function, what is actually passed is a delegate to that function. It appears that the Garbage Collector was freeing the delegates - since they themselves are never referenced again - even though they pointed to the internal handler. Everything I had read previously seemed to suggest that delegates were preserved: obviously not!

Fortunately you can tell the Garbage Collector not to mess with certain objects using GC.KeepAlive(ObjectName) - but this has to be done within the same routine as the delegate is declared. I have added such calls to the keyboard and mouse handling routines. Both the 32-bit and 64-bit versions are working flawlessly here and I'm really hoping that this finally fixes the issue once and for all.

Here's the 64-bit executable modified as above: perhaps you would test this version without the use of any third-party utilities, such as X-Mouse Button and SetPoint, and let me know your findings.

Mark

[attachment Removed][/attachment]

105
Circle Dock / Re: Requests / Suggestions thread
« on: March 18, 2010, 02:07 AM »
In one of my project I have thousand of object with image dynamicaly builded by AI and to speed up the system when I restart the program I save the object on file with an ObjectStream like a memory dump so when the program load the object there are all the resource, image resized, status ecc and I have a speed up of 1000%. It's possible to store item in a core folder with c#?
It is possible, yes, but it would serve no useful purpose as Circle Dock is not a homogeneous application but rather a collection of separate windows. Such a schema is likely to slow-down Circle Dock.
 
Instead of config file there can be a main folder with the main object stored and a real folder tree for the CD folder so I can save and export items in other CD moving/copying only the file. It's possible?
I have no plan to change the way Circle Dock stores its data which is very efficient due to the internal layout of the configuration files. However, if I were to make such changes, it would almost certainly involve the use of an object-oriented database engine.

Whilst I welcome all suggestions, please understand that I will only consider those suggestions that enhance the product for the benefit of all users!

For your guidance, I haven't yet decided how on the level of access to internal structures and routines I will permit Docklets to have. It is more than likely that there will be none at all, for data integrity and stability reasons. Docklets will certainly not have the ability to modify any general or item-specific settings. In my view the purpose of a Docklet is to provide a service that is outside the program's remit - such as a battery meter - and in that respect will be more akin to the Gadgets available for Google Desktop and Windows' Sidebar.


Mark

106
Circle Dock / Re: Requests / Suggestions thread
« on: March 16, 2010, 11:59 AM »
With the exception of your final request, which will not be implemented for resource reasons, we will bear your suggestions in mind however we are rather busy with the design of the Docklet API.


Mark

107
Circle Dock / Re: Requests / Suggestions thread
« on: March 14, 2010, 04:11 AM »
I'm afraid you'll have to "make do" with right-click, left-click on the centre button or background. Dock Items require a "target" to execute, either directly or by using the Windows Shell. They can not execute internal commands.

It's not a good idea to remove a flash drive without stopping it correctly using the "Safely Eject Hardware" operating system utility. The operating system caches write operations and there could be unwritten data, destined for file(s) on that flash drive, when you remove the SD card/USB stick. That data will be lost. You can't run this utility if any program run from a removable drive is still an active process or there is an active Explorer pane open for that drive -- well you can try to run it, but it won't succeed.

And before you ask, no, I won't be including any "safely eject hardware" functionality, for several reasons including:
  • The code required is quite substantial and is not portable between 32-bit and 64-bit platforms.
  • Program shutdown time would be much slower due to the amount of checks that need to be made and that would affect all users equally, not just those using Circle Dock in a portable environment.
  • There's a big risk of data loss - a risk I'm simply not about to take.
  • For Portable Applications, there already is this functionality within the PortableApp menuing system (I make no comment as to its effectiveness or safety).



Mark

108
Circle Dock / Re: Requests / Suggestions thread
« on: March 13, 2010, 09:50 AM »
You want another way to close Circle Dock??!!

109
Circle Dock / Re: Centre toggle
« on: March 12, 2010, 01:11 AM »
Could you add a custom keystroke combo for the centre button so it's the same system as the mouse/keyboard hotkey setup. Then instead of calling up the start menu we could have other apps eg deskspace.
That can't happen as, for technical reasons, the Centre Button is generally not the active window (the background is) so it can't receive key or mouse events unless it is specifically-activated. However I am considering allowing users to customise the action taken when the Centre Button is left-clicked. The options likely to be included will be "No action", "Show Start Menu", "Show Desktop" and "Run Task Manager".

Is it possible to add a setting to bypass keyboard/mouse when the pointer is over the taskbar?
No. Simply because if there's one area that users expect a fast response, it is in the toggling of the Dock's visibility. To add such a feature as you request entails adding a bunch of code to detect the mouse's position, to check the taskbar's visibility and taken as a whole this will decrease the responsiveness of the Dock.


Mark

110
I have kept silent until now, however, I have some concerns.

Is there a practical application for all of this, or is it simply designed as "eye-candy"?

My real concerns though are more about the technical aspects and, especially Circle Dock's response to commands, its true purpose and overall stability. Have you considered, for example, what happens if a user decides to hide the dock, add or remove items, display or show labels, change levels or even terminate the program?

I think what you have produced is interesting but that you are tackling the issue in the wrong way. As a proof of concept, it is fine, but I suggest you view this as a possible Docklet, co-operating with Circle Dock, and not as something that is stand-alone.



Mark

111
Circle Dock / Re: Stack Folder problem
« on: March 09, 2010, 10:15 AM »
However, my CD (x64) (now installed into C:\Program Files) still does not recognise 64-bit programs that also install by default into C:\Program Files (rather than C:\Program Files (x86)). My workaround is to install 64-bit programs into my C:\Program Files (alt) folder, but surely I shouldn't have to do that now?

Are you talking about Circle Dock or StandaloneStack (which powers the Stack Folders) as not recognising your Program Files folder? I suspect the latter which, as it is a 32-bit program, will be redirected by the OS (regardless of your wishes!) to the 32-bit equivalent folder. Not a lot I can do about that, I'm afraid, as I'm not the author of StandaloneStack.exe or its Docklet library files.

Also, CD is still a bit hit and miss as to whether it picks up program icons, and for a couple it displays just a "blank" icon - but the programs launch so I can live with that.

Circle Dock will try to locate a usable icon image from within an executable's resources. But not all authors place much more than a 16x16 pixel icon there which is the smallest Windows allows for - that icon size, incidentally, has been the same since Windows v1. Circle Dock won't use a 16x16 image because it's simply too small to use on a dock which typically has 48x48 pixel images and an image enlarged by that large factor will look pretty horrible.

If you don't want to use our default, you can find thousands of suitable images on a number of web sites - including Rocket Dock's image library which our Help Browser opens automatically. Failing that, Google is your friend.

Apart from these small gripes CD is an even better program and I love using it.

Thank you!



Mark

112
I'm a little surprised that works as, in Circle Dock, you've defined the key sequence to be Ctrl+F1+SPACE but your mouse button is set to generate Ctrl+F1 only.


Mark

113
Circle Dock / Re: Error: when moving CD folder in the center
« on: March 07, 2010, 12:42 PM »
There was a problem with language detection which is now fixed.


Mark

114
Circle Dock / Re: Error: when moving CD folder in the center
« on: March 07, 2010, 12:47 AM »
Thank you for your report. However as you are unable to reproduce this behaviour - and therefore provide us with the necessary steps so that we can reproduce it, there's little we can do.

Also, it's not too helpful in providing an edited extract of your Dock Items report. For us to diagnose faults of this kind, we'd need to see the full report.


Mark

115
just to toss my 2 cents in my middle button toggle is not working either on Windows 7 64bit with a logitech trackball using MS drivers.
Here's the situation. The global mouse and keyboard handler was actually written by a Microsoft MVP some years ago (abt 2004) and has been working in many apps and utilities for many people ever since right through the Windows 7 betas and until Windows 7 was released. For some (maybe many) people it still continues to work with Windows 7 - I, for example, use A4 Tech mice here and never experienced this and I know of users with Acer, Microsoft and Dell mice who also have experienced no problem. One thing is for sure, users of Logitech mice, such as your good self, do experience a problem with the mouse ceasing to trigger the dock's visibility. I've borrowed a Logitech mouse and have confirmed the problem for myself.

There are a couple of workarounds which, according to my testing, do appear to work consistently. Firstly you could try assigning one (or more) of the mouse modifier keys so that the toggle becomes (say) Ctrl+Middle Button.

The other option is not to use a button to toggle the mouse at all, rather use a screen edge and what works best for me is the following: In "General -> Location", set "Version 0.9 behaviour"; In "Visibility -> Show Dock", enable "Screen Right Edge", set "Edge Width/Height" to 2 and "Dwell Time" to 1. Now you can simply flick your mouse pointer to the righthand edge of your screen and back towards the centre and the Dock will appear. You can fine-tune those settings to suit yourself.

Hope this helps!


Mark

There is a third option - which is so obvious that I completely forgot about it! It is this: in Dock Settings, enable the "Toggle Button" to be visible when the Dock, as a whole, is hidden. The "Toggle Button" is, in common with other elements, configurable as to its image, size and opacity and you can place it anywhere on the screen.



Mark

116
Using a modifier key works somewhat better, but it still breaks. I have mine set to Ctrl + middle and it seems to take longer to break, and the 5 minute tick seems to usually kick it back into working for a short time. I haven't tried using edges to trigger. I will probably try that.

Aha! That's good information! However I suspect you haven't upgraded to v1.55 where the delay between "ticks" has been considerably reduced to 30 second intervals.

I may just end up buying a new mouse. I really love CircleDock. It works great on 3 of my computers and only has problems on one. O, btw, one of the computers it works great on is running Windows 7 32bit and a Logitech mouse (MX revolution). Since upgrading to the newer versions of CD Markham has put out, CD has been rock stable on that machine and others. Not having it work on one machine really points out to me how much I love this app.

Thank you! I really do appreciate it when users take the trouble to post positive messages about their experiences with this program.



Mark

117
just to toss my 2 cents in my middle button toggle is not working either on Windows 7 64bit with a logitech trackball using MS drivers.
Here's the situation. The global mouse and keyboard handler was actually written by a Microsoft MVP some years ago (abt 2004) and has been working in many apps and utilities for many people ever since right through the Windows 7 betas and until Windows 7 was released. For some (maybe many) people it still continues to work with Windows 7 - I, for example, use A4 Tech mice here and never experienced this and I know of users with Acer, Microsoft and Dell mice who also have experienced no problem. One thing is for sure, users of Logitech mice, such as your good self, do experience a problem with the mouse ceasing to trigger the dock's visibility. I've borrowed a Logitech mouse and have confirmed the problem for myself.

There are a couple of workarounds which, according to my testing, do appear to work consistently. Firstly you could try assigning one (or more) of the mouse modifier keys so that the toggle becomes (say) Ctrl+Middle Button.

The other option is not to use a button to toggle the mouse at all, rather use a screen edge and what works best for me is the following: In "General -> Location", set "Version 0.9 behaviour"; In "Visibility -> Show Dock", enable "Screen Right Edge", set "Edge Width/Height" to 2 and "Dwell Time" to 1. Now you can simply flick your mouse pointer to the righthand edge of your screen and back towards the centre and the Dock will appear. You can fine-tune those settings to suit yourself.

Hope this helps!


Mark

118
Circle Dock / Re: A Loading Image
« on: March 05, 2010, 09:34 PM »
I hate to spoil your fun but if you're wanting me to replace the current "Loading Settings ..." with something a bit more arty, then I should tell you that the text is not fixed but language-dependent!

Oh and the graphic needs to be a PNG (with alpha-channel transparency), not a GIF, APNG or MPNG.



Mark

119
I have today released both 32-bit and 64-bit versions of Circle Dock. The major purpose of this update is to address the UAC issues those of you running Windows 7 particularly have noted; there are other fixes and enhancements included and I will cover those later in this message.

We strongly recommend you install and run the 64-bit version if your version of Windows is 64-bit.


Installing Circle Dock v1.55
To overcome the ACL problems which result in UAC errors, you absolutely must uninstall any previous version of Circle Dock before attempting to install this new release. However, you may have already configured the Circle Dock the way you want it and don't want to lose those settings, so here's what you should do:

1. Locate the two files "DockSettings.xml" and "DockItemData.xml" and copy them to a temporary folder. If you have installed Circle Dock to a "Program Files" folder, then these two files will be located in "C:\YourUserName\AppData\Local\" (replace "YourUserName" with your Windows User Name). If, on the other hand, Circle Dock is installed elsewhere on your PC, the two files will be located in Circle Dock's "System\Settings\" folder. If you have included any Stack Folders on your Dock, you will also need to save a copy of "StandaloneStack.ini" which will be in CircleDock's "System\Miscellaneous\" folder.

2. Having copied these two files, uninstall Circle Dock.

3. Now install the new version. Run the new version and as soon as you see the blank dock, exit Circle Dock.

4. Replace the "DockSettings.xml", "DockItemData.xml" and "StandaloneStack.ini" with the copies you made in Step 1.

5. Now run Circle Dock as normal.


If you're installing Circle Dock into a folder other than "Program Files", (or creating a Portable Version), then you must set the ACL Permissions for certain folders and files yourself. For further information and instructions, consult this page of the help system.


Windows 7 and Mice
We have identified an issue concerning Global Mouse Handlers and Windows 7 installations that include mouse drivers installed after Windows was originally installed (ie OEMs such as Logitech). There's a tendency for Circle Dock to lose the ability to trap Global Mouse events including its mouse button that toggles the Dock's visibility. There are two work-arounds which seem to overcome this issue:

1. Include a "mouse modifier" key (any of "Ctrl", "Alt", "Shift", "Win").
2. Uninstall your OEM-provided mouse software and force Windows to use its generic driver for your type of mouse.

It should be stressed that this issue only affects Windows 7 and only where third-party mouse drivers are installed.


Other Changes, Fixes and Enhancements
The Help System contains full details of these however they include increased support for StandaloneStacks (all configurable items are now settable) and changed its folder "Root" to "Desktop" to allow a wider range of targets to be selected from.

Also, Circle Dock consists of two executable files now and no DLLs - these are now statically-linked as part of the build post-processing. This reduces both the disk and memory footprints with Circle Dock now typically requiring between 700KiB and 900KiB when hidden.

The download is available, as always, from this topic.



Mark

120
Circle Dock / Re: CIRCLE SPINNING
« on: March 02, 2010, 10:21 PM »
Dock Settings, General --> Rotation: Set "Rotation Angle (Degrees)" to a non-zero value.


Mark

121
If they don't go all 64 bit for Win8 I'll be really pissed.
Then prepare to be really pissed! Microsoft lost credibility big time with Vista, so much so that Corporates are far more wary now of anything that company says or does. It also lost credibility with the hardware manufacturers which accounts for patchy support these days for "minority" operating systems.

Given that many, many users worldwide, including corporates, are either running XP or earlier 32-bit OSes, Microsoft would commit fiscal suicide if it tried to impose 64-bit. As it is, there's a growing shift to Linux - especially in the public sector - and Microsoft needs to reverse that trend, which it won't do if it tries to dictate.

It may come as a shock to you, Microsoft doesn't pay much (if any) attention to the needs and wishes of ordinary users. The only people it listens to are the big institutions and corporates who spend mega bucks on licences.


Mark



122
Circle Dock / Re: UAC Issues - Vista/Windows 7, 32 & 64-bit
« on: February 26, 2010, 02:19 AM »
What graphics technology does CircleDock use, though?

As I've mentioned previously, the one slowdown I've seen was an app using GDI+... for DirectX, OpenGL and regular GDI I haven't been able to see a difference between 32- and 64-bit OSes (well, I don't have any intensive regular GDI apps, so perhaps regular GDI could be affected as well) ...

 - and perhaps an alternate graphics library should be tested? Might be considerable work, but if CD currently uses GDI/GDI+, it could probably get a nice speed boost from moving to something that leverages hardware acceleration properly?
Circle Dock is written around GDI for which there's good support with dotNET and I believe newer dotNET technologies, by which I mean WPF and Silverlight, are GDI-based. However, Circle Dock is currently built to support dot Net version 2 and I believe GDI was improved for v3.5. I am, in fact, planning to switch to dotNet 3.5 for the next major release, something which may not be popular with some of our XP users.

What's the status of the StandaloneStack thing, btw? From my (very quick and superficial) look, it seems that there's no official site for it, only attachments in forum posts? Active development, closed source, ...?
There is a site for StandaloneStacks which is a program designed to use a Rocket Dock/Object Dock compatible Docklet by some guy called "Matonga". But neither appear to be actively developed, are closed-source (afaik) and their authors seem to rarely post. I may yet drop internal support for this, a move the Sarge favours!



Mark

123
Circle Dock / Re: UAC Issues - Vista/Windows 7, 32 & 64-bit
« on: February 25, 2010, 09:24 AM »
Technically, it does set the right ACLs - from the design philosophy that %ProgramFiles% and %ProgramFiles(x86)% are protected paths. I know a lot of developers don't agree with this, but it's been kinda official since the NT4 days (and probably earlier) - damn Microsoft for delaying "default user is non-admin" until Vista, and for continuing the Win9x series for so long :)
Until I took over the development, Circle Dock's configuration files were stored in its own path and one of the changes I made quite early on is to move them away to AppData if Circle Dock is being run from Program Files/Program Files (x86). Either not many people were using Circle Dock under Vista or Windows 7 or they put up with the UAC dialogs, I guess the former as the download statistics, for the month to date, show that 97% of downloads are onto XP machines.

That sounds pretty strange - I've used it on XP-64/2gig, XP-64/8gig, Win7-64/8gig without problems. I know there's some problems with VS2008 if you install IE7 or later, but afaik it doesn't lead to memory errors, and I've only heard it in relation to MFC (since the MFC designers use html+js :-s).
Unfortunately with Windows 7 you automatically get IE7 which immediately nags you to upgrade to IE8.

It definitely depends on the type of application; x86-64 instruction has relatively efficient encodings so code doesn't necessarily bloat super much - and MS was smart enough to have .NET datatypes be size-specified, so your integers etc don't double in size, only pointers (there might be some data alignment size-bloat as well, too, though - haven't checked what happens with .NET in this respect).
Interestingly the core executable is about 50KB smaller when compiled as 64-bit that it is compiled as 32-bit. However, after binding-in the support DLLs, the 32-bit version is about 3KB smaller.

Interesting, I wonder what causes that - CircleDock doesn't strike me as an application that would benefit from it. Perhaps it's not because of compiling for x64, but because x64 doesn't include SS2 and SS2 causing the slowdowns?
SS2 is included in the 64-bit version - the Sarge would kill me if I removed it! SS2 does run but there's a noticeable delay, amounting to several seconds, before it displays the Stack (oh well, not my problem!). In general though - and ignoring SS2 - Circle Dock does appear to run faster and smoother as a 64-bit app than the 32-bit version under either 32-bit or 64-bit OSes.


Mark

124
The problem is, Sarge, that Microsoft's support for 64-bit is half-hearted. Ask yourself this, how many 64-bit applications do they produce and, more importantly, how many development systems do they produce specifically for 64-bit application development? Visual Studio 2008 is a 32-bit application as is the forthcoming Visual Studio 2010.

The only 64-bit compiler they have (and it, I believe, is licensed from Intel) is for C++. A few years ago, I and a fellow journalist, were invited to the Microsoft Development Lab in Cambridge, UK, and we talked to several of the people working there. Much of what I saw and heard can not be disclosed even now save to say that I saw a demonstration of compilers and other development tools that many developers would sell their grandmothers/wives/right arms to get hold of! A key employee told us he could not understand his company's blinkered fixation with C++ arguing that C# was specified to be a far superior and more robust language but that it had been "neutered" and relegated to the dotNET framework.


Mark

125
While waiting for the solution I've reinstalled CircleDock v0.9.2 Alpha 8.1 with the middle button as toggle for visibility and as long as this version is running CD v1.5.4.6 also keeps responding to the middle mouse button. When I quit CD v0.9.2 Alpha 8.1 I have the same problem again as described above.
For some reason the mouse toggle setting was being "lost" when the main settings dialog is loaded but only if the toggle button was the middle mouse button; if the toggle button was set to the X1 or X2 mouse buttons all was fine. The next version contains some code which should rectify this.


Mark

Pages: prev1 2 3 4 [5] 6 7 8 9 10 ... 15next