Make Google Groups Your Default Newsreader


You are here: Andrew Ho > Software > Google Groups

Motivation

In Microsoft Internet Explorer, you can set default clients for mail, news, and so on. In my case, I use a Unix client for mail and news, so none of the typical default choices apply to me. I am a big fan of Google Groups, so I thought it would be great if, when I clicked on a news: or nntp: URL in IE, the browser opened up that link in Google Groups instead of opening an external newsreader. Here's how to do that.

By the way, following this procedure makes most Windows applications (including Mozilla FireFox) use Google Groups to handle news URLs, which means you can use any browser you want, not just IE. Finally, if you want to do a similar thing for Gmail, Google's hot new webmail service, Graham Wilmott has some instructions on how to handle mailto links with Gmail partially based on my code.

Instructions

First, you need to have Windows Scripting enabled. If you can run the cscript.exe or wscript.exe programs from the Windows command shell or Windows Explorer, respectively, then you probably have Windows Scripting installed. If not, refer to the MSDN pages on Windows Scripting.

You'll need a short script that takes a news: or nntp: URL and tells the system to run the Google Groups URL. Here is the complete text of the script:

// googlegroups.js - open Google Groups in the system browser
// Andrew Ho (andrew@zeuscat.com)
//
// You can run this script with Windows Scripting Host by invoking
// cscript.exe from the Windows command shell, or by using wscript.exe
// from Windows Explorer. I associate this with IE so that clicking on
// news: or nntp: URLs uses Google Groups.
//
// For the latest version of this script plus documentation on how to
// set up IE to use this script to handle news: or nntp: links, see
// http://www.zeuscat.com/andrew/software/googlegroups.shtml.

var group = null;
var objArgs = WScript.Arguments;
if(objArgs.length >= 1) {
    group = objArgs(0);
    if(group.substr(0, 7) == "news://")
        group = group.substr(7);
    else if(group.substr(0, 7) == "nntp://")
        group = group.substr(7);
    else if(group.substr(0, 5) == "news:")
        group = group.substr(5);
    else if(group.substr(0, 5) == "nntp:")
        group = group.substr(5);
}

var url = "http://groups.google.com/";
if(group) url = url + "groups?group=" + group;

var objShell = WScript.CreateObject("WScript.Shell");
objShell.Run(url);

I save this to a file googlegroups.js in my C:\WINNT directory, but you can put it anywhere you want to. You can download a copy of the JScript file if you want to save typing.

Now you need to tell IE that this should be an available newsreader. You can do this by setting some registry keys. Here are the keys to set:

Under HKEY_LOCAL_MACHINE\SOFTWARE\Clients\News\Google Groups:

(Default) = "Google Groups"
\shell\open\command = "http://groups.google.com/"
\Protocols\news = "URL:News Protocol"
\Protocols\news\EditFlags = 02 00 00 00
\Protocols\news\URL Protocol = ""
\Protocols\news\shell\open = "wscript.exe C:\WINNT\googlegroups.js %1"

For that last key, replace C:\WINNT\googlegroups.js with wherever you actually put the JScript file. You can also download the registry file and double-click it to automate the changes.

Now, in your Internet Options control panel (which you can also reach by using the Tools menu in Internet Explorer), go to the Programs tab and you should see "Google Groups" as one of the dropdown options for the Newsgroups option. Select it, and hey presto, click on a news URL, and you should be surfing newsgroups within IE.

Downloads

Credits

Thanks to Sean T. O'Connor, who got me pointed in the right direction on Windows scripting, and Anwar Mahmood, who pointed out the shell\open\command key for making "Read News" in the IE menu work. I got the original registry instructions from some obscure Pegasus RunMail documentation. Searching Google for the registry key involved is another good way to find more relevant documentation (for example, MSDN explains how to add mail clients to Windows).

Send questions, comments, or bugs to me at andrew@zeuscat.com.



Andrew Ho (andrew@zeuscat.com)