internet explorer’s autocomplete


Frequently people are confused by the various dropdown quick-complete boxes in IE.  Most people lump them all under the term “AutoComplete.”  There are actually several features in play, and today I will describe them all.


Typed Urls
Typed Urls appear when you click the down arrow at the right (or left, depending on locale) end of the address bar’s edit box.  The keyboard shortcut is F4.  These items all have an icon to the left.  This is a list of the last 25 (or so) urls you have actually typed into the address bar.  Only items that you physically type into the address bar are listed here.  The list is stored in a registry key.  The key is HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs.  Each value in the Key is an URL.  If you click the Clear History button in the Internet Control Panel (Tools->Options) this entire key is deleted.


AutoComplete
When you start typing in the address bar’s edit box and a dropdown appears with suggestions that match what you type, you have discovered AutoComplete.  AutoComplete is actually a shell feature.  Any application can enable AutoComplete for any edit box by simply calling SHAutoComplete().  AutoComplete in IE will aggregate all the urls in your history, as well as various items in the shell namespace, such as “desktop”, “my documents”, etc.  AutoComplete also aggregates the items in the current user’s favorites folder (CSIDL_Favorites).  When you add a favorite, a .url file is created in the Favorites folder.  The filename is the title of the Web site (with non-NTFS friendly characters removed) or the url if the page has no title.  The user is also given an opportunity to specify their own title, though I suspect people rarely do this.  If you do specifiy your own title, it makes it very easy to visit frequently visited sites.  For example, my test manager adds Amazon.com as a favorite and sets the Name: field to amzn.  Then, when he wants to go there, he just types amzn into the address bar and AutoComplete does the work for him.  It is important to note that subfolders of the favorites folder are not included in the enumeration.  This is for performance reasons, I suspect.


A side note about Favorites:  There is another shortcut you can use to quickly access Web sites that are Favorites.  Right-Click on a favorite (either in the Menu or the Explorer Bar) and chose properties.  You will see just below the URL: field is the Shortcut Key: field.  Click in the box and press any key.  If you type 1 then Ctrl+Alt+1 will appear in the box.  Click OK.  Now whenever you press CTRL+ALT+1 Internet Explorer will navigate to that site.


AutoComplete for Forms
When you fill out forms on Web pages and the edit boxes provide suggestions for things like your name, phone number, etc, this is a slightly different type of AutoComplete.  On the team, we call it Intelliforms.  The toggle to turn it on and off, as well as other controls for it, is located under Tools->Options->Content->AutoComplete. 


Now we can all talk specifically and with authority when referring to the various features. 
And we can navigate to favorites very quickly now.


Comments (5)

  1. James says:

    Why is the PStore less secure than using the Crypt functions? Is the PStore deprecated? Does some artefact of its interface prohibit a more secure implementation? Is this discussed in the (externally visible) documentation?

    Sorry to divert the topic slightly.

  2. Rowan says:

    Hey, I thought you might know something about a bug I’ve discovered in IE6 with Autocomplete in forms.

    I’ve been developing a website that uses frames and a lot of forms. The problem is that on some computers when using IE6, if you start filling in a text input box the autocomplete field will display in the wrong place (like at the previous box).

    I’ve never seen this on my own computer but a lot of people have reported it.

    I was hoping you could shed some light on this issue.

    Thanks.

  3. PatriotB says:

    I’ve developed several applications that use the WebBrowser control and MSHTML for the user interface. Is there any way to have my own autocomplete for forms? Or is that something that only works within the main IE/Explorer frame?