|
Manual InstallSince there's no installer yet... I'll make handy little .reg files that can be just dropped in for the file extensions, but it seems like a good idea to explain everything here. Cheddar's relationship with the registry requires some fairly complex associations within the HKEY_CLASSES_ROOT hive thanks to its unique ideas about how to mangle DDE. The following explains how to do that. This tutorial assumes basic familiar with registry editing, but not familiarity with any specific part of the registry. Preamble about binariesFirst, make sure that you have placed Cheddar.exe, Edam.exe, Brie.exe and any other things that came with them in a directory that the system can easily find them. You don't really have to, but it makes things a lot easier that way. I recommend the Windows system directory, but you could just as easily edit HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths and slip in entries for Cheddar, Edam and Brie there. You're probably wondering what the hell all of these EXE files are for. Well, there are some very important reasons for them.
This may seem a little excessive, and I think that Brie may now be completely obsolete, because Edam is capable of handling all of its functions. Brie is still included in the package because it's slightly faster (owing to its smaller filesize) when there is no option but to start a new process in order to send a message to Cheddar. This is only used by one function—the right-click context item "Create New Window"—and could be replaced with Edam by the uninterested. How to actually set it upGo into HKEY_CLASSES_ROOT (HKCR) in the registry. We will be creating new shell commands, complete with DDE information, for the following filetypes: .bmp, .gif, .jpg, .txt, folders, and all files. You will notice that there are many nice little keys inside of HKCR that each have very logical and well-thought-out looking names that follow the direct form of their file extension. In order to find out where we need to build our shell commands, we must get the locations from these. Inside of .bmp, .gif, .jpg, and .txt, you will find a value called (Default). This indicates the name of the actual key we want to look in—if .bmp has a (Default) value of "bmpfile", then we want to look in HKEY_CLASSES_ROOT\bmpfile in order to create our commands. Collect the (Default) values for .bmp, .gif, .jpg and .txt. We now know where we want to create all of our shell commands. Folders use HKCR\Folder and all files use HKCR\* in addition to their own information. Now, what the actual shell command looks like. Inside of the keys of which we just got the names, you will most likely find subkeys called things like DefaultIcon, shell, and shellex. It is 'shell' that concerns us. In each one, we need to create the following structure: If shell\open already exists (and it should), then rename it to shell\edit. The text "uri" as it appears in command and ddexec will need to change depending on the context; specifically, in .txt files, it should be "text" and in image files, it should be "image". "uri" is a general handler suitable for .HTML documents and things like .PDF ActiveX controls. For directories, "dir" should be used, although it is funcitonally identical to "uri". Now, we know what we're doing with images, text files, and directories (and .html and .pdf files too if you like IE) but this leaves us at odds with what to put in HKCR\*. I like to put three different commands—changing "open" to cimage, ctext, and curi respectively—with various appropriate text. This ensures that the full range of open methods is available. Open in new window, and the purpose of brieTo create a command that ensures that Cheddar always opens a new window, change -:uri:- to -:uri:0. The second hyphen is actually a placeholder for the hWnd to use. If it is a hyphen, then the top window is used. If it is 0, then a new window is created. If it is any other number, then Cheddar will attempt to find the appropriate window of its own possession and load the entry there. When a hWnd is specified (I.e., is non-zero), Edam can be bypassed. This means changing the ddeexec Application to Cheddar, and the command to brie.exe instead of edam.exe. The command could be changed to cheddar.exe, but that would be substantially slower, because the system would be required to load all of the activex controls over again every directory change. The reason Cheddar requires Edam and cannot simply act as its own DDE server (in this case, Edam receives messages and redirects them to an identical interface in Cheddar) is because of a gut-wrenching quirk of Explorer, which commits high treason by setting focus on the server application whenever a DDE Execute command is sent. This makes it impossible to determine with Visual Basic's native DDE interface where the command is coming from (a bizarre shortcoming of DDE in general is how hard it is to determine the identity of your conversation partner), but with Edam in place, a log of recently-focused windows is feasible. Brie was added originally purely for the need to escape the slow load time of running a new copy of Cheddar just to act as a DDE client, and remains more streamlined than Edam by about 32 kb (as it has no tray icon.) All of this can be easily supplanted by a .reg file.And Cheddar will soon have a proper installer. One that fixes the control panel, too. Cheddar Information
|
|
All those rights are, like, totally reserved. This mumbling is legally binding. |