KkMenu 2.80
The original and primary purpose of the KkMenu was (and still is) to decrease the required number of
icons docked in the Stardock Object Dock. During the time, a new major functionality has been added:
Displaying the file system as a menu tree.
This document should help with the KkMenu installation and use.
This document covers the Stardock Object Dock version 0.95 and the KkMenu 2.80 only.
Please submit all KkMenu suggestions and/or bug reports to the KkMenu comments area at
WinCustomize. I will
try my best to answer there.
Before e-mailing to me and/or submitting a comment at the KkMenu comments area at
WinCustomize, please
read this document carrefully and go through the previous KkMenu comments.
Please e-mail any suggestions for improvements of this document to:
JiriKrivanek@BetaControl.cz.
Acknowledgments
-
Thanks to Jairo Boudewyn and Luis Ballesteros for making the application icons.
-
Thanks to Luis Ballesteros for the beta testing and his hints and tips.
-
Thanks to all users for the feedback.
-
Thanks to Luis Ballesteros for the language correction of this document.
-
Thanks to Luis Ballesteros for the default skin image.
Legals
The KkMenu is still freeware but if you like the program, why don't you support the further
development?
Until I discover any way of how to get the money into Czech Republic effectively (i.e. without a terrible bank fees),
you can mail a registered letter with either the $10 or the 10EUR bank note in the envelope to this address:
ing. Jiri Krivanek
Teyschlova 26
Brno - Bystrc
635 00
Czech Republic
The KkMenu will only work on Microsoft Windows 2000 or later systems. For more details, see please the
Installation section.
Please follow these steps to install the KkMenu.
-
Download the latest release of the KkMenu from WinCustomize.
-
Unzip the contents of the
KKMENU280.ZIP
archive into the following directory:
C:\Program Files\KkMenu\
Notes:
In case the directory does not exist, please create a new one.
In case of a non-standard system (i.e. when the system is installed on other drive than C:
),
please replace the C:
with the appropriate letter (e.g. D:
, E:
, etc.).
-
In Microsoft Windows 2000 only (i.e. in case of MS Windows XP, please skip this step) ensure that the
gdiplus.dll
file exists in your computer. It must be placed in the same directory where the
kkmenu.exe
is located.
The gdiplus.dll
can be downloaded from the Microsoft website for free.
More, the gdiplus.dll
is a part of the Stardock Object Dock installation.
For more PC experienced users: The gdiplus.dll
actually does not need to be placed in the same folder
but the system must be able to locate it either in the system directories (like C:\WINNT
) or
in the current directory or on the PATH
.
-
The proper installation of the KkMenu should look like that:

The directory contains three executables:
KkMenu.exe ... the KkMenu main program.
KkMenuEditor.exe ... the user defined menus designer.
KkSkinner.exe ... the KkMenu skins editor utility.
-
To test if the KkMenu is working properly, simply double-click the
test.bat
file. Something like this should appear:

In any case that this simple test fails, please supply me with the error message to:
JiriKrivanek@BetaControl.cz.
Before mailing me please check if the error message contains the gdiplus.dll
text (for the
solution see please the steps above in this section).
To create a new menu simply run the KkMenuEditor.exe
program (please note
that the KkMenuEditor.exe
remembers the last edited menu) and press the "New menu" button.
The KkMenuEditor.exe
should look like this:

For the instructions regarding the menu editing, see please the
Editing the existing user defined menu section.
After editting your new menu, please save it:
-
Press the "Save menu" or the "Save menu as" button. The following dialog appears:
-
Go to the directory where you installed the KkMenu (for more details see please the
Installation section) and the MENU sub-directory.
Note: The menu .ini
files must always be placed in the
directory where you installed the KkMenu or any of its sub-directories, otherwise the
KkMenu.exe
will be unable to load it.
-
Choose the title of your new menu (which will be used as the first argument of the
KkMenu.exe
, for more details see please the Command line arguments
and the Using with the Stardock Object Dock sections) and press the "Save" button.
To initiate the editing of the existing menu please (this example will regard the default
KkMenuDrives.ini
, which is included in the KKMENU280A.ZIP
archive):
-
Pop-up the menu you would like to edit and right-click it at any place. The
KkMenuEditor.exe
should automatically launch on the desired .ini
file.
-
Or you can start the
KkMenuEditor.exe
, press the "Load menu" button, go to the directory
where you installed the KkMenu (for more details see please the Installation
section) and the MENU sub-directory.

Finally pick the .ini file with the menu you would like to edit.
Anyway, the following window of the KkMenuEditor.exe
finally appears:

Please do not forget, that generally, all changes has to be saved prior closing the KkMenuEditor.exe
.
To add a new menu, please highlight the root (i.e. Menus) item in the menu tree and press the "Add" button
(please note that the "Add" button is context sensitive - i.e. it adds different kind of item according to
the highlited one).
The New Menu appears:

Now, please highlight the New Menu and enter the desired menu name into the "Name" edit-box:
To add a new menu item, please highlight any menu item in the menu tree (e.g. My New Menu) and press the "Add" button
(please note that the "Add" button is context sensitive - i.e. it adds different kind of item according to
the highlited one).
The New Menu appears:

Now, please highlight the New Menu Item and enter the desired menu item name into the "Name" edit-box:
To setup the menu separator, please simply check the "Separator" radio button:
To setup the sub-menu, please check the "Submenu" radio button and select the required submenu in the drop
down list below:
To setup the shortcut menu item, please check the "Shortcut" radio button and fill in the necessary
informations about your shortcut in the boxes below:

The general rules for entering the command line parameters are exactly the same as with the other system tools.
The individual command line parameters are space separated. If you need to enter a single command line parameter
containing one or more spaces, please enclose it with quotes (e.g. C:\Program Files\
will be parsed
as two command line parameters - C:\Program
and Files\
but
"C:\Program Files\"
will be parsed as a single parameter).
If you would like to explore the various parts of the windows system, please enter the explorer.exe
into the "Shortcut" edit-box and one of the following into the "Parameters" edit-box:
- My Computer:
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}
- Recycle Bin:
::{645FF040-5081-101B-9F08-00AA002F954E}
- Desktop:
::{00021400-0000-0000-C000-000000000046}
- Control Panel:
::{21EC2020-3AEA-1069-A2DD-08002B30309D} (see note)
- Printers:
::{2227A280-3AEA-1069-A2DE-08002B30309D}
- Dial-up networking:
::{A4D92740-67CD-11CF-96F2-00AA00A11DD9}
- Fonts:
::{BD84B380-8CA2-1069-AB1D-08000948F534}
- Internet Explorer:
::{871C5380-42A0-1069-A2EA-08002B30309D}
- Microsoft Outlook:
::{00020D75-0000-0000-C000-000000000046}
- Network Neighborhood:
::{208D2C60-3AEA-1069-A2D7-08002B30309D}
- Inbox:
::{00020D76-0000-0000-C000-000000000046}
- Subscriptions:
::{F5175861-2688-11d0-9C5E-00AA00A45957}
- URL History Folder:
::{FF393560-C2A7-11CF-BFF4-444553540000}
- Briefcase:
::{85BBD920-42A0-1069-A2E4-08002B30309D}
- Internet Cache Folder:
::{7BD29E00-76C1-11CF-9DD0-00A0C9034933}
- ActiveX Cache Folder:
::{88C6C381-2E85-11D0-94DE-444553540000}
- Control Panel:
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}
Please note, that I have taken the list above from the Aqua-Soft discussions
(thanks to hydrostereo and fireball) and I have never tested if all of the items do really work.
Please e-mail me in case of any inconveniences to: JiriKrivanek@BetaControl.cz.
To setup the dynamic folder sub-menu, please check the "Folder" radio button and fill the desired folder path
into the "Folder" edit-box below:

Please never forget to finish the folder path with the backslash character (i.e. '\'
).
To setup the root dynamic folder, please create a new menu
(see please the Creating new user defined menu section),
then add a single new menu
(see please the Adding a new menu section)
and finally enter a special menu name consisting of:
- the asterisk character (i.e.
'*'
) denoting the dynamic folder and
- the desired folder path
(e.g. *C:\
):

Notes:
-
Never forget to prefix the folder path with the asterisk character to achieve the dynamic
root menu functionality (and never do it otherwise).
-
Never forget to finish the folder path with the backslash character (i.e.
'\'
).
-
All other menus and items of the root dynamic folder will be ignored.
After you selected the desired menu item kind, you can choose an image.
To assign the menu item image, please highlight the desired menu item in the menu tree (e.g. My New Menu Item)
and press the ellipsis button behind the "Image" edit-box:

Using the following dialog, locate and pick the the image. Please note that the KkMenu currently supports only the PNG
image formats (other formats, such as ICO, BMP, JPG, GIF etc. might also be loaded but may look crappy).

In case you selected the image which is located out of the directory where your menu.ini
is saved, you will
be prompted with the following question:

Now you have to decide if you want to gather all images of the particular menu in the same directory with your
menu.ini
file, or not. The recommended answer is "Yes".
In case you answer "Yes", you will be informed about successfull copying of the image file:

Finally, the KkMenuEditor displays your new image:
To move any menu or item, please highlight the desired item and use the "Move up" and "Move down" buttons to move it.
To delete any menu or item, please highlight the desired item and use the "Remove" button to remove it.
To popup the KkMenu by clicking a Stardock Object Dock icon please follow the steps below.
The default skin named KkSkinMenuAlfonso.ini
and the default menu named KkMenuDrives.ini
are expected. Both files are included in the KKMENU280A.ZIP
archive.
-
To create a new dock shortcut, please right-click on the Dock and select the following menu:

The new shortcut appears in the dock:
-
To edit the new dock shortcut, please right-click its icon and select the following menu:

The "Dock Item Properties (Shortcut)" dialog appears:
-
Change the item image and the title to desired values.
-
Press the "Browse..." button and using the following dialog pick the KkMenu.exe program:
-
Finally write the following text into the "Arguments" edit-box:
KkMenuDrives.ini KkSkinMenuAlfonso.ini
Please note that there might be three more arguments supplied with the "Arguments" edit-box.
For more details see please the Command line arguments section.
-
Thus the "Dock Item Properties (Shortcut)" dialog now appears like this:
-
To test your new shortcut simply left-click its icon. If everything went well then the following menu appears:
-
Similarly, any menu can be added to this Dock icon.
The KkMenu command line looks like this (for the working example see explore please the content of the test.bat
file):
KkMenu.exe menu_file.ini skin_file.ini [delay [x y]]
This means that the KkMenu has two mandatory and up to three optional arguments:
menu_file.ini skin_file.ini [delay [x y]]
This is a comprehensive description of all arguments:
-
menu_file.ini
...
is the mandatory reference to a file which contains the user menu specification.
-
skin_file.ini
...
is the mandatory reference to a file which contains the skin-to-be-used specification.
-
delay
...
is the optional time in tenths of milliseconds (i.e. *10ms) of
the submenu auto-opening delay.
Please note that the folder submenu
can take quite long time to load (depends on the computer
speed and the number of files and directories in the folder).
If not supplied then the default value of 400ms
takes place.
-
x y
...
is the optional explicit specification of the root menu position.
If not present then the menu automatically places to the current mouse cursor position.
Please note that if present then the delay
parameter MUST be also specified.
There are two bottlenecks in the KkMenu performance. Both of them has to be considered separately.
-
The KkMenu loading time.
This depends on the overall speed of your
PC as well as on the amount of your RAM.
The KkMenu does not reside in the memory; in other words, it completely
reloads everytime you want to pop it up. Just try to imagine what the KkMenu must do
before showing the menu to you:
-
Load and parse the
menu.ini
file.
-
Load and prepare all the images of your menu items.
-
Load and parse the
skin.ini
file.
-
Load and prepare the skin image.
-
Load and prepare the sounds.
-
More, in case of the dynamic folder menu, all the files and sub-directories
of the requested directory must be scanned.
-
Even more, in case of the dynamic folder menu, every particular file and directory
has its icon which needs to be obtained from the MS Windows Shell. Actually I
significantly optimized this by internal cashing of the images.
This simply consumes a time. See please the To-Dos section
to learn my plans of how to speed this up.
-
The KkMenu re-drawing speed.
The KkMenu uses some special feature
called Layered Windows. The Layered Windows was originally intended
for a small but smooth graphical animations. Every animation frame
expects the repainting of the entire Layered Window. KkMenu uses the
Layered Windows a bit different. I.e. the KkMenu is not a small graphic,
actually it can be quite large - and consequently slow. Please note
that without Layered Windows there would be impossible to implement
the shadows and transparency effects which make the KkMenu so eye-candy
(no! I have not omitted the DirectDraw which is terribly complicated
to use and more, which is unstable, unreliable and not-easy-to-port to
other PCs). The graphical performance would probably be much better
on XP based PCs equipped with the graphic card supporting the
HW accelerated per-pixel alpha blending.
-
Included tutorials.
-
Added folders opening with mouse double clicks.
-
In case of zero shadow width, drawing the texts using standard
methods (instead of beautified). This should enable the Type 1 fonts to be drawn correctly.
-
Added three new (optional) command line parameters. For more details see please the
Command line arguments section.
-
The menu item separator can also have an image.
-
Added the "execute in directory" parameter to the shortcut.
It still needs to be tested, let me know if it does not work properly.
-
The dynamic (folder) menu can now be placed in the root. To create
the dynamic root menu see please the
Creating the user defined menu section.
-
The submenu does not close if the border of any menu is pointed to any more.
-
The "access violation" bug has been removed. As the bug was not regularly reproducible,
this still needs to be tested by the users.
-
The dropdown list of installed fonts added to the KkSkinner.
-
Fixed a number of bugs as well as brought new bugs with new functions.
Kk Menu 2.70 - 2003-06-27
-
The menu texts can have various shadows.
-
The menu content scrolling now supports the mouse wheel and
normal left-clicking.
-
The KkSkinner now supports the "reset canvas offset" feature.
-
The KkSkinner now draws the frame selections correctly.
-
The submenu auto-opening is delayed.
-
Added sounds support (to disable it simply remove/rename wav files).
-
Improved shadows of my aqua skin.
-
Fixed some other bugs (including WWW shortcuts) as well as
raised new bugs with new functionality.
Kk Menu 2.50 - 2003-06-25
-
Added the dynamic folders.
-
Fixed number of bugs.
-
Many new bugs raised by adding a new feature.
Kk Menu 2.01 - 2003-06-18
-
Added the simple menu editor.
-
The image files need not be located at the menu directory
any more.
-
Fixed number of bugs.
Kk Menu 2.00 - 2003-06-16
-
Updated the skin engine.
-
Added support for submenus.
-
Slightly tweaked the graphics performance.
-
Added a simple skin editor.
The following problems still have to be solved and the new features still have to be implemented.
-
Solve the problem with crapy XP icons (still do not know how to).
-
Enable to configure the show/hide dynamic menus icons.
-
Add the menu caption.
-
Try to speedup the dynamic menu openning by keeping the icons database
(this may help but may not).
Another reason for creating the database would be the possibility to "replace"
the system icons with the user supplied icons.
-
Try to speedup the dynamic menu openning by some sort of a sophisticated
folders tree preloading.
-
Generally, as soon as the Object Dock plugins are available the KkMenu
should be converted into the plugin which:
-
Should shorten the loading time as the KkMenu will be pre-loaded (i.e. loaded all the
time, since the Stardock Object Dock startup).
-
Will bring many new problems (including less stability of both the
KkMenu and the OD as both of them will share a single program space).
-
Will increase the memory requirements as the KkMenu will be loaded all the time.
May be, implement some sort of plugin interface into the KkMenu.
Add the keyboard support.
Repai the crappy icon of the KkMenu.exe
.