KeyNote: Frequently asked questions

For answers to general questions about my freeware programs, please see the main FAQ page. If you're interested in KeyNote 2.0 development, please see the KeyNote 2.0 Development FAQ.
Questions about adding features or formatting styles to KeyNote's editor? Please read this first!

Contents

  1. Features (existing, requested, planned)
  2. Files, note management, shell integration
  3. Import, export, file formats
  4. Hyperlinks, bookmarks, virtual nodes
  5. Printing
  6. Macros, plugins, templates
  7. Performance, efficiency, limitations
  8. Encryption, security
  9. Spellchecker, language support
  10. Other operating systems (PalmOS, PocketPC, Linux...)
  11. Miscellaneous

1. Features (existing, requested, planned)

Q: KeyNote is missing some features. It should support tables, columns, numbered lists, headers and footers, footnotes and endnotes and other word processing features.

A: Usually, it is not possible. Please read on. I have received a great number of requests like this. Well, if something as useful as tables or footnotes were possible to implement, I would have done it already :-) Certain features or formatting styles, such as tables, are not available in KeyNote because they are not supported by the Windows standard rich text control (the "riched20.dll" file in your computer's "system" directory) which KeyNote uses as the editor.

It works like this: Microsoft have created a specification for RTF (rich text format) documents. The full specification is huge and complex, and it includes all advanced formatting capabilities that you have in Word. Word does not use RTF internally, but it can read and write documents in this format, and it supports (probably) all features set forth in the specification.

But KeyNote is not Word. KeyNote uses a standard Windows library, "riched20.dll", which provides the RTF editor with all its capabilities. This library is installed on all Windows systems (although different versions of Windows come with different versions of the richedit library). The library implements only a subset of the RTF specification, and leaves out a lot of features. For instance, it does support bold text and highlighting, but it does not support tables. Or footnotes, endnotes, column layout, line drawing, tables of contents, indexes, etc.

If the riched20.dll library does not support a given feature, KeyNote cannot have it. For instance, version 1 of the library did not support highlighted text. So even if KeyNote could somehow display the text as highlighted, the highlight would not be saved to file - because it's the richedit library that saves and loads documents (and interprets the RTF file data), and that library did not understand highlights. It does now.

Each new version of the library does introduce support for some new elements - for instance, version 3 (the latest) supports numbered lists. If one day Microsoft adds support for footnotes to the richedit dll, then KeyNote will have it too.

There are other reasons, too. For instance, version 3.0 of the riched20.dll (Windows 2000 and later versions) introduces support for several new formatting elements. But these are poorly documented and what's more, they cannot easily be used directly in Delphi (the compiler I used to create KeyNote). It may be possible to implement some of these new additions in a later version of KeyNote.

Specifically:

(Most of these limitations could be overcome, in theory. Some commercial programs do not use the standard riched20.dll library; instead, they use commercial components that extend the RTF functionality. But if I were to use these components, KeyNote could not be freeware or open-source.)

Q: Why is there no syntax-highlighting in KeyNote?

A: Because an RTF editor is entirely unsuitable for this task. You need a text-only editor to do syntax highlighting.

There is a difference in how the coloring is achieved. A text-only editor will color the text on screen, for display only - without affecting the original text file. This way, the program can almost instantaneously change the text coloring, e.g. replace blue color with red, or remove all highlighting altogether.

An RTF editor, like KeyNote, cannot do so. The only way to color text in KeyNote is by applying various formatting properties to text. But these changes are permanent: once highlighted, the text would remain this way, and there is no practical way or removing or altering the highlighting. Try highlighting syntax in Word to see what I mean.

Q: Will you add the ability to create skins for KeyNote?

A: No, but you can do it yourself. OK, this is one of the things that I just won't do :) I totally detest skinnable applications - they're always just a poor excuse for ugly or inconvenient original interface. (The famous Winamp, for example, is an interface nightmare!) So a skin gives it a different color theme, but basically it's still the same awkward interface. In addition, all these bitmaps consume a lot of resources, which is still a big issue on Windows 95 and 98. It would be a waste of my time and your computer resources to create skins.

But if you really want it, you can. KeyNote is an open-source program. You can download the source code, learn a little Delphi if you don't know it yet and make KeyNote skinnable. You can even distribute it without having to ask my permission! (Provided that you do not violate the terms of the Mozilla Public License.)

Q: Why can't I import .JPG images, only .GIFs and bitmaps?

A: Same reason as above. I didn't include .jpg capability in KeyNote, because the code necessary to import jpeg files increases the size of keynote.exe by over 100 kb - in other words, it bloats the application enormously.

However, you can paste images from clipboard, regardless of their original format. Most graphics applications allow you to select an image and copy it to clipboard - you can then paste it in KeyNote.

But please note also that if you include even a small jpeg image in a KeyNote file, the file will easily become very, very large. This is due to the way images are stored in RTF format. In general, KeyNote files should not be larger than 4-5 MB; larger files may cause problems when opening or saving files.

Q: Why can't I create numbered lists or tables in KeyNote? (They can be pasted from Word, but cannot be created inside KeyNote)

A: Numbered lists are already available in version 1.4, but please read on. The standard richedit control (which displays and "drives" the rich text editor) does not support tables. It doesn't support many other formatting elements which MS Word has, e.g. footnotes, tables of content, even simple things like page numbers and page formatting. Word is not based on the standard richedit control, it's a completely separate implementation.

Version 3.0 of the richedit control introduced support for a few new formatting elements: numbered lists and, indeed, tables. That's why you can paste a table from Word. However, you cannot create it inside KeyNote, because the improved richedit control (3.0) is not supported by Borland Delphi. Simply put, Delphi does not know about the added capabilities. Also, the table support is incomplete - for instance, the table cells do not resize with text and it's not possible to add or remove rows or columns. Please also see this answer.

Q: Will KeyNote ever be able to display alarms, reminders or to-do lists?

A: Maybe. I realize that it would be an extremely useful addition: a new kind of note which would store and display a list of to-do items, alarms, periodic reminders, etc. I am seriously considering something like this for version 2.0 of KeyNote. However, this type of functionality raises a terribly difficult design problem, if the alarms were to be stored inside KeyNote files.

When you use a reminder program, you expect to rely on it; once you enter an alarm or a to-do item, you expect that the program will display an appropriate alarm or show a message when necessary. The program must not fail to do so.

But if you had your reminders stored in a .KNT file, they would only be active as long as that particular .KNT file was opened in KeyNote. The moment you opened a different .KNT file, the reminders would not be working anymore, which makes the whole function useless.

Perhaps most users typically work with a single file only; but KeyNote was designed to allow you to create many .KNT files and quickly switch from one to another. For the purpose of displaying reminders, alarms, etc., this is completely unsuitable. For instance, I use over 10 separate .KNT files for different kinds of information, so if my reminders were kept in one of these files, they would almost never be actually displayed. KeyNote doesn't seem to be the right kind of program for this type of functionality.

Now, reminders could be stored in a separate file, not in the .KNT file where you have all your notes. That separate "reminder file" would always stay open, regardless of what .KNT file you are working with. But this solution also has its problems. For instance, if you wanted to make a backup, you would have to remember to back up two files, instead of just one. And if several people shared KeyNote on one computer, they would have to share the "reminder file" as well, because there would only be one! This, again, is not a satisfactory solution.

If I ever figure out how to implement such functionality correctly, I will include it in version 2.0 of KeyNote. If you have an idea, please let me know!

2. Files, note management, shell integration

Q: Can KeyNote be used as a replacement for Notepad or Wordpad? When I try to open a text file in KeyNote, I get an error message that reads "Invalid file header. This is not a Keynote file". Can KeyNote work directly with text files and rich text files?

A: Keynote is not a "normal" editor for text or rich text format files, and should not be used as one. KeyNote is based around the concept of having many notes stored in a single file on disk. This means that you can organize information in a more orderly way, and makes it easier to keep related information in one place, instead of having it scattered over many files in different places. A KeyNote file is a collection of notes in RTF format. One Keynote file may include the contents of many single text or rtf files.

Such a concept requires using a special file format. KeyNote creates its files with the .KNT extension (or .KNE, for encrypted files). A KNT file stores all notes, with their formatted text and settings (such as the name of the note, the icon associated with it, background color, etc.). While you can view KNT files with a text editor, such as Notepad, you will not be able to edit them directly. You will certainly not be able to open KNT files using an RTF editor (such as WordPad). Files with the .KNE extension are binary, encrypted files, and can only be opened by KeyNote.

What all this means is that KeyNote cannot be used as a replacement for NotePad or WordPad. KeyNote is not designed that way; it is not meant as a simple editor for text or RTF files. KeyNote cannot open such files directly. (If you try that, KeyNote will display an error message: "Invalid file header. This is not a Keynote file".

Text (.txt) or rich text (.rtf) files can be imported into KeyNote files, via the Tools|Import command. Imported files will become notes in the currently open .KNT file; the original files will be left on disk, untouched. (You can also import files by dragging them from Windows Explorer and dropping them on KeyNote's toolbar or statusbar area.)

Another way of editing text or rich text format files in KeyNote is by using the so-called "Virtual nodes". This allows you to use KeyNote as if it were a simple editor for text and rtf files: you will be editing the actual files on disk, without importing them into the .KNT file. The easiest way to create a virtual node is to drag a file from Windows Explorer and drop it onto the tree panel in a tree-type note.

Q: Why can't I open a KeyNote file by double-clicking it in Explorer?

A: KeyNote normally tries to associate itself with KNT files, so that you can open them by double-clicking. If this didn't work, you can create a file association manually in Explorer (View -> Options -> File types; the exact menu commands depend on the version of Windows).

Or, you can ask KeyNote to try to create the file association itself. To do so, open the Options dialog box, click the "File options" section, and enable the option called "Auto register file type". (Note: When KeyNote associates itself with KNT files, you can also double-click plugins and macros to run them in KeyNote.)

Q: I deleted a node (or note) by mistake. Can it be recovered?

A: No, unless you have a backup file. Deleting tree nodes (and notes) is permanent. You can try to restore the backup file (exit KeyNote, then rename "yourfile.bak" to "yourfile.knt", overwriting the existing .knt file).

What you can do to prevent such a problem in the future is to increase the "backup level". Like most programs, KeyNote keeps one (last) version of the file as backup by default. But unlike most programs, KeyNote can maintain up to 9 backup files. Open the Options dialog box (F5), select the "Backup options" section, and you'll see the "Max backup level" field. Select a number higher than 1, to have that number of backup files kept. (The additional backup files will have numbered extensions: .bak2, .bak3, etc.) This provides a better safety and greatly increases the chances of being able to restore something that was deleted accidentally.

Q: Does KeyNote support Windows XP themes?

A: Not directly. If you wish to see what KeyNote looks like with XP themes, download this manifest file. Unzip the downloaded file and put it in the same directory as keynote.exe. After you restart KeyNote, it will adopt the current XP theme. Warning: This is experimental and entirely unsupported. You may encounter problems, please read below.

Support for themes in Windows XP is acquired by using a different set of common Windows controls. (Common controls are standard parts of the graphical user interface: edit boxes, drop-down lists, checkboxes, tabbed pages, etc.) Windows XP comes with two sets of these controls: the older set, without support for themes, and a new set, which does provide theming support. The manifest file you can download using the link above will cause KeyNote to use the new set of controls. However, the new XP controls are in some ways incompatible with the old ones. KeyNote may occasionally crash when such an incompatibility manifests itself. I do not think that stability should be traded for looks, so please do not email me to complain if KeyNote does crash. It should, however, work well most of the time.

Further, you will notice that some controls still do not adopt XP themes. This is because some controls KeyNote uses are not standard Windows controls - they are generated entirely or partly by Delphi, and they will not support themes at all.

Q: Why can't I open more than one file at the same time?

A: I designed KeyNote to support multiple tabs (notes) to minimize the necessity of working with many files. Providing the ability to open more than one file introduces another level of complexity, which I'd rather avoid. Since tabs are used for notes within a single file, opening multiple files would only be possible with MDI (mutliple document interface), i.e. old-style overlapping windows - I find such solutions very awkward to use, so it's not likely to be donei in KeyNote.

However, KeyNote also provides several ways of opening files quickly: you can use the recent files list attached to the "Open" button on the toolbar, or use the File manager. The file manager is by far the fastest: press F12, then press the first letter of the filename (you may need to type a few more if there are several files whose names begin with the same letter) and hit Enter.

3. Import, export, file formats

Q: Can KeyNote import files created by other similar programs?

A: It depends. Whatever program you would like to import from, please take a look at a file created by this program (using a file viewer). Can you make sense of the structure of the file? Can you figure out where the names of notes are stored, and where the data is? If the program uses a tree structure, is the hierarchy of the tree discernible?

If you answer Yes to the above questions, please let me know: I may be able to create an import filter. If you answered No, then consider that if the file structure is not obvious to you, I won't be able to make sense of it, either.

Most programs use binary file formats, which are not human-readable. You can help - and I will appreciate if you do - by writing to the authors of the software you want to import from and asking them to publish the description of the file formats. Witbout such documentation, reverse-engineering binary file formats requires a lot of skill and a lot of time which I do not have. If sufficiently detailed file format documentation is available for a particular program, I can write an import procedure for that program; it will not be possible otherwise.

Q: Can I export notes to an HTML file?

A: Yes, sort of. This has been implemented in version 1.3, but true RTF-to-HTML conversion is hard to do well. Currently, KeyNote relies on MS Office text converter (html32.cnv) which must be installed on your system. (It is usually installed with Windows, even without the Office package, because MS WordPad uses it as well.) However, hyperlinks within your RTF notes will not be converted to clickable links in HTML, and at this time there is no way to export a complete tree note as a set of related HTML documents. This will be done in version 2.0; KeyNote will export a tree as a frameset with a navigation frame.

Q: Why can't I export notes to HTML format?

A: KeyNote uses a Microsoft library, html32.cnv, for RTF-HTML conversion. This library is installed with Windows - 95, 98, NT and 2000 at least. I don't know if it is installed with Windows ME or XP. On Windows 2000, the file is located in:
C:\Program Files\Common Files\Microsoft Shared\TextConv\html32.cnv
but the location will be different on other version of Windows. I think all versions of Windows should have it, because both Word and WordPad use it for HTML conversion.

KeyNote will not be able to export to HTML format without this file installed and properly registered. (It can still import HTML files, via MS Office converters or Internet Explorer).

4. Hyperlinks, bookmarks, virtual nodes

Q: KeyNote should display a description of a hyperlink, like a Web browser, instead of showing the URL address.

A: It's not possible, as far as I've been able to find out - and I spent many hours working on it. Simply put, the RTF editor will only highlight what it recognizes as a valid URL. So the URL (including the protocol prefix, such as http://, file:/// etc.) must be visible text in the editor, it cannot be hidden in any way.

This actually involves two separate problems: (a) attaching an URL to its description (with only the description being visible), and (b) making sure the description is highlighted and clickable.

Problem (a) is solvable with version 3 of the riched20.dll (not any previous version, because they did not support hidden text). But there is no technique available to solve problem (b). If only the description is visible, then it will not be highlighted or clickable. Just making it blue and underlined will not work, of course, because the editor will still not recognize it as a valid hyperlink. There is a special property that can be applied to text to mark it as an active link, but this property is runtime-only, i.e. it does not get saved with the text. As a result, I was able to create fully working true hyperlinks (solve both A and B), but this only worked while the file was open. After saving and reopening the file, the links would revert to "dead" plain text.

To sum up: at this time, I know of no technical solution that would allow KeyNote to display hyperlinks the way web browsers do. The limitations of RichEdit control seem to be preventing it altogether. Please also see this answer.

Q: Can I create links to local documents on my computer?

A: Yes! If you just want to create clickable hyperlinks to local files, use the "Link to file" command under the "Insert" menu. If you want something extra, read on:

It's already possible (from version 0.91 upwards). This only works with tree notes. Create a new node in a tree, then right-click it, and choose "Virtual node" from the context menu. This "links" an external file to that node - the file will remain on disk, and you will be editing the original file, not a copy. The file contents are not imported into the .KNT file (only the filename is stored). This makes KeyNote behave just like any old text editor, of course :) You can link only text and RTF files this way. (The keynote.ini file has a setting to define which file extensions are to be interpreted as text files). Note that if the file is a text file (not RTF), then you still can modify the font styles in KeyNote, but they will be lost when the file is saved back to disk. RTF files will retain all text formatting made in KeyNote. Also note that in this way you cannot attach files on removable media (a network drive, a diskette, a CD-ROM drive) and that if you move your KeyNote file to another computer, the virtual nodes may become "orphaned" if the files they were linked to no longer exist.

Q: Will KeyNote ever support bookmarks?

A: Not really. I've added a very basic bookmark support (version 0.974 upwards). But these bookmarks are dumb - they only mark an absolute location in the editor ("the 520th character from the start"), not a part of the actual text. If you add or remove text BEFORE a bookmark, the bookmark will stay in place and won't point to the original text anymore. There is absolutely no practical way this could be done any better - because to have real bookmarks, KeyNote would have to recalculate the positions of all bookmarks each time you press a key (add a letter, press the Delete key, paste or cut text, etc). This is possible in theory, but in practice it would result in horribly complex and SLOW code.

Also, the RTF editor doesn't have the concept of a gutter, so there's no space in which to display the bookmarks - they're invisible.

As a matter of comparison, MS Word solves the problem neatly - by inserting a character into the text at the bookmark position. However, (a) Word's bookmarks aren't automatically numbered (you have to give them a name, which makes the whole thing too time-consuming to use frequently), and (b) the bookmark pointer is inserted in the space BETWEEN normal characters - Word can do this, but the standard richedit control cannot. Basically, to recreate Word's functionality, you can just add strings such as "{1}", "{2}", etc. into the text, and then use the Find function to search for these. It won't be any worse than what I could do with a specialized dialog box.

Q: Will you add support for hyperlinks to notes or tree nodes?

A: Done. As of version 0.985 beta, KeyNote supports hyperlinks which jump to another note or tree node. Please read the "Hyperlinks" topic in KeyNote's Help file. The old answer to this FAQ is retained, below, because it contains some background information which is still relevant.

This could be useful: clicking a hyperlink would take you to a location in another note, or another node in a tree. It's possible, but there's one catch. As defined by Internet standards, URLs cannot contain spaces. When they do, spaces have to be encoded as octal numbers (%20 for space; other codes are used too). The richedit control does not (and should not) support spaces in URLs, either.

This becomes a problem when you have a note with a space in the name - how do you link to a note that's called "Black and white"?
     link://thisfile/black and white
is NOT going to work - the editor breaks the hyperlink at the first space. (Try it with any "http://" URL.)

It does work if you encode the spaces properly:
     link://thisfile/black%20and%20white and this is how such hyperlinks have been implemented in KeyNote.

Please also see this answer.

Q: Hyperlinks to local files (file:///) don't seem to work. Is this a bug?

A: Please make sure you are using the latest version (at least 1.6). If you are, and hyperlinks still do not work, please read on.

When you click a hyperlink, KeyNote simply executes the link as a windows command This is exactly the same process which you can effect manually by clicking the Start button, selecting "Run...", typing or pasting the text of the link in the dialog box and clicking OK. Please try it (e.g. with file:///c:\Program Files\KeyNote\doc\readme.txt), and see if it works. It should open the file with the associated application, just like when you click the hyperlink in KeyNote. If it doesn't work in KeyNote, it's likely that it will not work from the "Run..." dialog box, either. That indicates that the file type is not correctly registered, not a fault of KeyNote.

If the above experiment does work, then KeyNote may be at fault. Please check the hyperlink settings: open the Options dialog box, click "Actions", then check the settings in "URL actions" field. For example, if the "Shift key must be held down" option is checked, then KeyNote will require that you hold down the Shift key while clicking a hyperlink. If the settings look OK and hyperlinks still don't work for you, let me know. Make sure to tell me which version of KeyNote you are using, and which version of Windows.

Update: I have recently found out that certain anti-virus products, such as AVG, when installed to run in the background and monitor all executed files, may prevent KeyNote from executing local programs and documents. This is a bug in the anti-virus package, not in KeyNote. If you encounter any problems with file:/// URLs, please try disabling your anti-virus program, if it is running, and see if this eliminates the problem.

Update: If you still encounter problems after upgrading to version 1.6.1 or later, especially with file paths that include spaces, please edit the following entries in the "keynote.ini" file:
URLFileDecodeSpaces=1 (change to: URLFileDecodeSpaces=0)
URLFileQuoteSpaces=0 (change to: URLFileQuoteSpaces=1)
Note that you must close KeyNote before modifying the INI file.

5. Printing

Q: Where is the Print command?

A: Under the "Note" menu. I realize this is a non-standard location. The point is to make it clear that it is the note, not the file, that's going to be printed.

If you're asking this question, you should definitely also read this.

Q: I have been unable to find how to set margins for printing notes. Am I just missing something?

A: Yes, the "bugs.txt" file. There's a "Page setup" command under the "File" menu, you can specify print margins there. But make sure to read the printing-related section in the file "bugs.txt" installed with KeyNote (under the "doc" subdirectory). For up-to-date information about KeyNote bugs, please see the bugs page.

Q: Will a print preview dialog be added to KeyNote?

A: No, not anytime soon. I've tried it once, but the print preview dialog box adds over 100kb to the size of the program. In my opinion it's just not worth it. If I find a better (smaller) solution, I'll probably use it.

Q: Can I print only 1 page (or a few selected pages) instead of printing the whole note?

A: Unfortunately, you can't, because the standard RichEdit control does not support this. It's easy to notice that the editor doesn't have a notion of page breaks - hence, no page selection for printing. It is possible to implement such a feature, but it would really take more effort than it's worth. Instead, you may:

6. Macros, plugins, templates

Q: Where are macros and plugins located?

A: On the Resource panel. Macros and plugins used to be accessible from the Tools menu. Now they are all listed on the Resource panel. If the Resource panel is not visible, press F9 (or use the "Resource Panel" command under the "View" menu) to display it. Click the "Macros" or "Plugins" tab, and you'll find them there.

Q: Does KeyNote support templates for creating new notes?

A: Yes. This is already possible, it just isn't called templates! Create a new .KNT file where you will keep the template notes. Then, while you work in another file and want to create a note based on one of your templates, use the "Merge" function under the "Tools" menu. Click the "Merge notes from file" command, select the file which contains your templates, and then select the template to use.

It is also possible to create templates from pieces of text, and have them automatically inserted in the editor later. Click the Template tab on the Resource panel and see what's available there.

7. Performance, efficiency, limitations

Q: Can KeyNote be used on a local network? Can a file be shared and updated by several users?

A: No, KeyNote is not designed to handle this. Basically, only real database software allows for concurrent data updates by multiple users, and I mean real database, in the four-to-six-zeros price range, not MS Access :) (Microsoft seems to have added this capability in Office 2000, but I've only heard stories about how it leads to loss and corruption of data.) A function like this requires the ability to open and lock selected regions of a data file, and implementing what's called "transaction" processing. In short, it's the stuff of true databases, which KeyNote is not.

KeyNote has one feature that is designed to prevent loss of data when the currently open file is updated by another user - when KeyNote detects that its file has been altered (size or date change), it will ask the user whether the file should be reloadeed from disk. If you reload, you'll lose the changes you made; if you do no reload, you'll lose the changes the other person made. But, this does not work across a network (the function relies on a Windows built-in notification mechanism, which only works on the local machine). So, if you are working on the central server, you will be notified if a remote user changes your file. But if you are working on a remote machine, there will be no notification.

It would be possible to open a file in read-only mode if the file is already opened - however, there is no way to detect this. KeyNote does not keep the file open all the time, because this is a recipe for disaster (file may become corrupted if a power failure occurs, etc). KeyNote only opens the file (which blocks write access, and would result in a read-only open on another machine) when it loads or saves the file. Otherwise, the file is not open, so other programs cannot know KeyNote is using it. I've toyed with some file locking techniques, but they are just not sufficiently reliable - opening a file on many computers at the same time would be safe most of the time, but occasionaly you'd run into problems, so it's not an acceptable solution.

Q: KeyNote hangs temporarily (~10 seconds) when switching from a node that contains images. When it hangs, it is using all of the CPU resources.

A: Unfortunately, "get a faster machine" is the only suggestion I can make. To the RTF editor, an image is a pretty darn long list of lines, plain text, which together encode the picture. When you switch from one node to another, KeyNote has to get these lines from the editor into internal storage, clear the editor and fill it with lines from the new node... A lot of work if we're talking many thousands of such lines, which is a typical case for images, esp. high resolution ones.

You will see the same behavior when you put a lot of text into a node. On my P3 450, a perceptible (1 sec.) delay begins at about 4 thousand lines of text in the editor. With images, there could be many times that much.

RTF is a poor environment for storing images. It can be done, but it will never be efficient. Even in Word you get delay and flicker when scrolling down a page full of bitmaps. Same thing.

Q: Is there a limit to the file size in KeyNote? Or to the number of notes and tree nodes in one file?

A: Any such limits are only imposed by the amount of memory you have and the version of Windows you use.

There are no hard-coded limits anywhere in KeyNote; how much a file can hold only depends on the amount of memory you have and, to a degree, the version of Windows. Text is stored in lists; a Delphi list can hold a maximum of 134.217.727 items, which theoretically limits the number of lines you can have in a single note, but your computer will probably run out of memory long before this number of lines is reached. (There is no limit on the length of a single line.)

In general, KeyNote can easily handle files up to 5-10 megabytes in size. Beyond that, some operations (opening and saving files, searching, etc) may become too slow to use the program comfortably. Remember that KeyNote is a notepad, not a database, and has not been designed to handle huge amounts of data.

As for the tree, it will become a bit sluggish when refreshing thousands of nodes, but that's only a speed (CPU) issue. Each node needs to be drawn and has an icon, so on Windows 95/98/ME you will eventually run out of system resources (because of the icons and checkboxes). If you do have more than several hundred nodes, it may help to turn off the icon display (and/or checkboxes) for that particular note. But overall, KeyNote will behave more efficiently if you have many nodes with smaller chunks of text than a single note with all the chunks of text combined into one. I am using files with as many as 3000 nodes in a tree without any problems.

Q: Why is the executable file so large?

A: Mumble. There are three answers to this. One: It's not my fault! Two: Oh well, I could do better. Three: Everyone else is cheating (well, they often are).

It's not my fault. Every serious application written using Borland's Visual Component Library - be it a Delphi or a C++ program - is going to be about a megabyte in size, or more. This is part of the price paid for the convenience and reliability that the VCL affords a programmer. It would be possible not to use this library and write a complete program using only Windows API calls. Such a program would be extremely tight and lean, but coding this way would take years (literally) and would be immensely difficult. There are still programming wizards who work this way, and they certainly deserve a lot of respect. I'm just not one of them.

I could do better. What can I say, I'm learning things as I go, and often I may not be choosing the optimal way of doing things. When I do optimize, I choose to optimize for speed rather than the size of the program. Note also that even if the size of the executable is, e.g., 1.5 MB, this does not mean that the whole 1.5 megabyte is loaded into your computer's memory at all times. Much of that size is consumed by various resources the program contains, such as icon images, dialog box definitions, etc. These are only loaded when they are necessary, and then discarded. Windows reads resources from the executable program as it needs them - that, by the way, is one reason you cannot delete a running application: Windows locks it, because it may be need to read information from it while the program is running.

Everyone else is cheating! Not everyone, exactly, but many software authors do. If you have a program of a complexity similar to KeyNote and you see that it takes only 400-500 kilobytes on disk, there's a good chance the executable has been compressed to appear smaller. You can view the binary code of a program to verify it - if it contains incomplete or "broken" looking strings, it was probably compressed. If the header contains a name such as "aspack" (one of several popular exe-packers for Windows), it was certainly compressed. This is sometimes done to prevent people from easily decompiling or cracking an application, but note that when you run the program, the file is decompressed to memory, so it has disadvantages too: the program takes longer to start, and consumes even more memory than it otherwise would (the decompression code). Also, such compressed executables are wasteful of resources: since Windows cannot read a compressed file, the program resources cannot be loaded dynamically or shared among several instances of the same application.

Please see also the next two questions!

Q: Why are KeyNote data files so large? Could KeyNote compress them on the fly?

A: No. First of all, compressing files on the fly would make KeyNote much slower. Try zipping a 30 MB file with WinZip or any other compression program - that takes several seconds even on fast computers. KeyNote would have to do the same every time it saves (or opens) a file. This sort of delay is out of the question in a "quick notes" type of application.

But more importantly: file size as such isn't really a problem. Disk space is relatively cheap today; hard disk sizes begin at 20 GB. The problem is memory and system resources - especially on Windows 95 and 98 systems, which still are limited in this respect. A zipped file would be small on disk, but it would have to be unpacked for editing, and would still take a huge amount of RAM and resources.

Normally, KeyNote files are not large. They will only grow to huge sizes if you insert pictures or objects in them. I added this ability because many users requested it; but KeyNote (or any RTF editor) is not a suitable program for this task. Rich Text Format files have their own way of storing graphics as uncompressed bitmaps converted to text (view the source of an RTF file to see what I mean). This is inefficient, slow, and results in huge file sizes. Even HTML is much better suited for this, because you can use GIF and JPEG files, which are internally compressed. With RTF, no matter what format of an image file you insert, it is automatically converted into an uncompressed bitmap. Note that the situation is identical when you insert images in a Word or a WordPad document.

Finally, I designed the file format for KeyNote on purpose - it's a plain text file (with embedded chunks of RTF code). In case of any problem, you can open the file in a text editor and edit it. For instance, if someone uses an earlier version of KeyNote which didn't support trees, it would be quite easy to modify a .KNT file manually so that it can be opened in the older version of KeyNote. This is of course helpful not only in emergencies, but also it allows other programmers to import and export files in KeyNote format easily (the way KeyNote can read and write Treepad files). If the file is compressed, this becomes impossible, or at least very difficult to do, and in case of any problem, you could not modify the file.

Q: Why do KeyNote files become so large after inserting images?

A: Because this is how images are stored in RTF files. The Rich Text Format, designed by Microsoft, is capable of storing images (or other embedded data), but it does so in a very inefficient way. Regardless of the format of the original image (BMP, JPEG, GIF, etc.) the image is internally converted to an uncompressed bitmap. Depending on the size, number of colors and resolution of the image, even a relatively small picture may grow to one or more megabytes when inserted into a KNT file.

KeyNote is meant as a notepad, and while it can be used to store images, this is not a recommended practice. Please direct complaints to Microsoft; for obvious reasons I cannot change how the RTF editor handles images internally. (Version 2.0 of KeyNote will include a built-in image viewer, which will store images in a much more efficient fashion, but outside of RTF notes.)

Q: Can KeyNote be run from a floppy disk?

A: Not any more. Currently (version 1.2) KeyNote's size just about exceeds the capacity of a 1.44 floppy diskette. You can, however, download an older version that still fits - the last version of KeyNote that could be put on a floppy disk was version 0.999. See the Download page for a link to that file, but please use it only if you must run KeyNote from a floppy.

Do not install KeyNote onto a floppy disk, but install it to your hard drive and then just copy "keynote.exe" to the floppy. You do not need to copy any of the supplementary files (*.tip, *.wav, *.adr, *.sig, *.kns); KeyNote will work fine without them, but they are small so you might as well include them if you want. KeyNote will create its own configuration files, though, so make sure some space is left on the floppy. Also, as KeyNote grows in size, there may be little or no room for the actual data file(s).

If KeyNote and its associated files do not fit on a diskette, you can use an "executable compressor" program (like the ones I berate in the answer above ;) to compress KeyNote's executable file. I recommend that you use the UPX (Universal Packer for Executables) program. It is freeware, it is Open Source, and it yields a really impressive compression ratio: it compresses KeyNote.exe from 1.37 MB to 476 kilobytes! Please see UPX homepage for download links. UPX is a command-line application, but there are GUI front-ends available (such as WinUPX).

8. Encryption, security

Q: I forgot the password to my encrypted file. Can you help?

A: No-one can. Well, maybe the NSA :) Strong encryption means just that - it's mathematically strong and there's no way to decrypt your data without the correct password. Otherwise, there would be no security at all - if I could provide you with a way to open the file without the original passphrase, everybody else could do so as well. There are no back doors and no known ways to break this kind of encryption using today's computers. Perhaps some governmental agency has sufficient CPU power to break such encryption within the span of a few months, but even that is a mere speculation.

The only thing to do is to try and recall your password. Perhaps you can try to figure out what password you would come up with today - it might be similar to what you used previously, it might suggest something or refresh your memory. Remember that passwords are case-sensitive; if you recall anything about your original password, try entering the text using lower- or uppercase letters, or perhaps punctuation characters.

Q: Can I encrypt KeyNote files?

A: Yes! Starting with version 0.90, KeyNote supports secure encryption of the notes file. Before you start using encryption, you absolutely must read the Help topic about encrypted files in KeyNote's main Help file. Remember that if you forget the passphrase you used to encrypt the file, you will not be able to access the text in the file - that, after all, is the whole point of encryption.

Q: Can individual tabs be encrypted selectively?

A: No, it would raise too many issues with design and usability. If each tab could be encrypted selectively, KeyNote would have to prompt you for access password every time you click (switch to) that tab, then decrypt and display the information. When you go to another tab, the information would have to be encrypted again. It would be very slow and rather annoying. And when you leave the computer, you would still have to remember to switch to a different (non-sensitive) tab manually. Which would be more cumbersome than just closing the file.

However, KeyNote already has the kind of protection you need. In the Options dialog box, choose "Actions" and see the settings there. In short, KeyNote can automatically close your file after a period of inactivity (activity = mouse and keyboard clicks anywhere in the main window). At that point, the file will be no longer loaded, so it cannot be accessed without the password. KeyNote can also automatically prompt you for access password when you restore the program after it auto-closed an encrypted file.

(Note: if the file has been modified, KeyNote has to save it before closing. For this reason, the AutoClose option only works if AutoSave is turned on. If AutoSave is off, KeyNote displays a warning when you try to enable the AutoClose option.)

9. Spellchecker, language support

Q: Does KeyNote have a spell checker?

A: Yes! It finally does. As of version 1.07, KeyNote includes a spellchecker module. It requires MS Word 97 or later (and has only been tested with MS Word 2000). The reason I have used this option is twofold: the MS Word spellchecker is the only such module that supports rich text format (RTF) files, and does not require creating any new dictionaries: if you have MS Office installed, you already have the dictionary (or dictionaries) you will need.

I do not suppose KeyNote will ever have its own internal spell-checker. Even if I find a freeware-with-source component that works well (and so far, I have not been able to) then there is the problem of creating dictionaries - not only for English, but for other languages as well. I will absolutely not have the time to compile new spelling dictionaries or word lists! It's much better to use an existing solution that works in a satisfactory manner.

Update 1: KeyNote now features integration with WordWeb (http://wordweb.co.uk/free), a freeware dictionary and thesaurus. For details, please see the Help topic for WordWeb in KeyNote's main Help file.

Update 2: As of version 0.999, a spellchecker could be implemented as a plugin module. If you are a software developer and would like to try your hand at it, please download the plugin development kit to see how plugins work in KeyNote.

Update 3: (June 2002) There is a new freeware spellchecker application which could work well with KeyNote: http://www.dynawares.com/spell.htm.

Q: DBCS and Unicode problems - KeyNote crashes when displaying Chinese or other DBCS characters.

A: This is a known problem, but a workaround is available. Please see the KeyNote bugs page for details.

Q: Does KeyNote support languages other than English?

A: No. KeyNote's user interface (menus, dialog boxes, etc.) are only in English; there is no support for localized versions. This is not merely a matter of translating the interface into other languages: a program needs to be specially designed so that it can load messages in another language. KeyNote has not been designed to allow this.

Note that the "Language" option in Note Properties dialog box only sets the language for the selected text (much like "Tools - Language" in Word). This property is used to select the proper dictionary for the spell-checker; it has nothing to do with the user-interface language.

Version 2.0 will be available in language sother than English, but the translaton mechanism will not support multibyte characters or Unicode.

10. Other operating systems (PalmOS, PocketPC, Linux...)

Q: Will there be a Palm or a PocketPC version?

A: No, unless someone else creates one - that's why I released full source code! First, I know nothing about programming for Palm or PocketPC. There are no Pascal compilers for these platforms, so I would have to learn another language (most likely, C++). I don't have the time for that, nor the inclination, because it would take me years to achieve in C++ the proficiency I now have in Delphi. Also, since there are no free compilers for PalmOS (that I know of; except for an old and abandoned beta version of a Basic compiler), I would have to purchase a commercial compiler, something I can't afford. (I am not aware of compiler availability for the PocketPC platform, but since I'm using a Palm myself, PocketPC support is even more remote than PalmOS support.) Finally, I'd rather work on KeyNote 2.0 for Windows than on KeyNote 1.0 for other platforms. It's taken two years to get KeyNote to where it is now, so it's a considerable investment of time.

(Note that a simple plugin is available to export text from KeyNote to Palm "doc" format, please see the Downloads page.)

A conduit would be more likely, because Palm have provided a very good and complete documentation. At the moment, my knowledge of the Palm API is exactly zero, but it's something I could delve into, eventually. Still, a conduit needs a Palm-side application to actually use the converted data, and at the moment I know of no Palm application that even approaches the functionality of KeyNote. On other words, KeyNote could export data to some Palm-supported format, but there is no application for Palm you could use to view or edit the data.

Third-party applications: if you know of an PalmOS or PocketPC application that could potentially be integrated with KeyNote, I suggest you ask the author of that application to import KeyNote data; it's probably in their interest to do so, and it would be easy for them, since KeyNote is open-source. Please do not ask me to add support for that application, especially if it is a commercial product. As a freeware author, please understand that I am not interested in donating my unpaid work to someone else's commercial efforts. If I am contacted by an author of a commercial product, I will however assist them with regard to file format, integration mechanism, etc.

I'm somewhat disappointed by the paucity of quality freeware for Palm, at least in the database/PIM area. If there were a freeware/open-source project that could conceivably be integrated with KeyNote, I would certainly be interested in working with it to provide a sync solution for KeyNote. (Please do not suggest Progect, it's extremely buggy on Palm and non-free on Windows.) I will definitely create a Palm version of KeyNote when/if a free Pascal compiler for Palm becomes available. For a PocketPC - yes, if the above requirement is met and if someone donates a PocketPC to me so that I can test the application.

Will there be a Linux version?

A: No, unless you write one. I have no knowledge of Linux programming and really no desire to learn it, sorry. (This should not be interpreted as a put-down of Linux. I simply do not have the time, and Linux is unsuitable for my everyday work and play, so I'll stick to Windows for the foreseeable future.) Further, in order to port KeyNote to Linux I would have to purchase Borland Kylix (the free version can only be used to create GPL-licensed applications, which KeyNote is not). I would gladly accept a gift of Kylix, but I probably wouldn't be able to make constructive use of it, anyway.

You may be able to run KeyNote under Wine. If you have success that way, please let me know and, if possible, write a detailed How-To, which I'll post on the website.

11. Miscellaneous

Q: Every time I change the font style, size or color to my preferences, all the changes are gone when I close the file and open it again later.

A: This is not so much a bug, as a gross incompatibility that Microsoft introduced with version 3.0 of the RichEdit control (riched20.dll). Most Windows NT systems, many Windows 98 systems and all Windows ME and Windows 2000 systems will experience this problem. The differences are such that some behaviors of the editor become difficult to predict. To make matters worse, I have no access to Windows NT or 2000 systems, so I can't test and debug this issue personally.

Update: As of version 0.89 of KeyNote, most of these incompatibilities are worked around. Font styles and colors are now correctly retained. A few minor problems remain, and they will be eliminated in a later release. Thanks muchly to Marek "Anglik" Cieslik for fearless debugging!

You may also observe this problem when changing certain properties of the note tabs, such as tab location (top or bottom). Please see file "bugs.txt" for details. (This file is installed in KeyNote's "\doc" subdirectory.)

One other possible solution: Microsoft prohibits software authors from distributing the riched20.dll file (and for a good reason, because each system has its own version) - but if you can find a Windows machine with a compatible riched20.dll version 2.0 (not 3.0), you can just copy it to KEYNOTE's DIRECTORY (not to the system directory) and KeyNote will use it instead. You should be able to find copies riched20.dll on the internet.

Q: Why can't I use the "&" character as part of the note name?

A: You can, but there's a catch. When you place a single "&" character in the name of a note, it is used for a special "fast switching" function. The character is not displayed - instead, the letter immediately following it becomes underlined (as in any Windows menu). You can then press Alt+<the underlined letter> to open that note without having to click it or to press Ctrl+TAB several times. For instance, if you name a note "&Black", the letter B will be underlined ("Black") and you can switch to this note by pressing Alt+B.

If you need to use the "&" character in the name of a note, enter it twice:
     "Black && white"
The name will now be shown the way you intended.

Q: Can I modify the Resource Panel tabs, or arrange them differently?

A: Yes. When you right-click the tabs on the Resource panel, a context menu is displayed. Click the "Multiline tabs" option to arrange the tabs in rows. You can also use the menu to turn off individual tabs or change the layout of the resource panel.

At the moment there is no way to reorder the tabs in Resource panel. I don't think it's really necessary, though.

Q: Can I search for text in node names?

A: Yes. KeyNote has two separate search facilities, which differ in functionality. When you use the standard "Find" dialog box (Ctrl+F, or Search -> Find in te menu), this only searches through text in notes, and does not include node names. (It's much faster this way). But please note that under the "Search" menu you have the "Find node" command - it will specifically search only in node names. Look up the menu command to find the keyboard shortcut.

Secondly, you can use the global search function on the Resource Panel. This _will_ search for text in node names too, if you check the "Search node names" option.

More questions?

See the main FAQ, submit a comment or question, or see the contact page.
Valid HTML 4.0!