Google Answers Logo
View Question
 
Q: Change Autosearch URL in IE6 ( No Answer,   5 Comments )
Question  
Subject: Change Autosearch URL in IE6
Category: Computers
Asked by: theabhinav-ga
List Price: $50.00
Posted: 11 Feb 2004 15:04 PST
Expires: 12 Mar 2004 15:04 PST
Question ID: 305908
In IE6 When I search from address bar or just mistype a URL , it goes to MSN
redirect URL and then gets redirected to search engine chosen by the
user something like
http://auto.search.msn.com/response.asp?MT=TheQuery&srch=4&prov=gogl&utf8

Well in this case it used Google as a search engine ( prov=gogl ) as I
set it that way.

My concern is, I want to use the search engine for address bar search
which is not listed in the "Customize Address Bar Search options".
How do I do that? I know I can create keys under SearchURL and use my
search engine but then I would have to use Prefix before the searches
and I dont want that.

Any help on this would be appreciated. Thanks in Advance.

-Abhinav

Request for Question Clarification by robertskelton-ga on 12 Feb 2004 12:48 PST
Are you willing to edit your Windows registry?

Clarification of Question by theabhinav-ga on 12 Feb 2004 15:34 PST
Yes, I am willing to edit the registry. But remember I dont want to
add keys to SearchURL as it will require me to use a keyword or prefix
before the search. As long as I dont have to use a keyword, I am game

Request for Question Clarification by robertskelton-ga on 12 Feb 2004 16:01 PST
Go to the Start Menu, click on "Run" and enter "regedit"

Go to HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchURL\

The first key is the default search URL - if it has never been changed
it should look like:
http://home.microsoft.com/access/autosearch.asp?p=%s

Replace the URL with whatever you want. 

To work out the correct search URL for your search engine of choice,
this usually works (otherwise I can work it out for you):

1) Do a search using your engine of search. 
2) Look at the URL of the search results page.
3) Copy all of the URL that comes before the word you searched for. It
should end with the equals sign.

Example: a Google search for "love" returns this search result URL:
://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=love

The URL you should use is:
://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=



Give it a go, and let me know if it works for you.

Request for Question Clarification by robertskelton-ga on 12 Feb 2004 17:07 PST
Oops, my bad - the above trick DIDN'T WORK.

Clarification of Question by theabhinav-ga on 12 Feb 2004 17:57 PST
Good attempt by I have already tried all those options. The deal is
all the searches go to
http://auto.search.msn.com/response.asp?MT=TheQuery&srch=4&prov=?????&utf8
. Microsoft then decides based on prov=????? , which search engine to
use. Now this redirect URL has no entry in the registry, but its
somewhere and I need to access that or find out a way that instead of
search going to MSN it goes to where I decide.

Request for Question Clarification by aht-ga on 12 Feb 2004 18:18 PST
theabhinav-ga:

If I may make a suggestion, the answer you seek may well be pointed to
by Google itself, on its own website:

://www.google.com/options/defaults.html

(Look under "Make Google Your Default Search Engine", Internet Explorer section)

The Registry file that Google suggests you download contains the following:

------------
REGEDIT4


[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Use Search Asst"="no"
"Search Page"="://www.google.com"
"Search Bar"="://www.google.com/ie"

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchURL]
""="://www.google.com/keyword/%s"
"provider"="gogl"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Search]
"SearchAssistant"="://www.google.com/ie"
------------

So, the best approach is to mirror the above approach, as far as the
keys in the registry go... and robertskelton-ga can help you there!

Regards,

aht-ga
Google Answers Researcher

Clarification of Question by theabhinav-ga on 12 Feb 2004 18:29 PST
aht-ga,
  I thought the answer was in google's approach but its not. The only
reason google becomes your default search engine is because MSN
redirects , ie, MSN recongises google ( prov=gogl query string in the
redirection URL). The way it works is MSN gets paid to redirect
traffic to google. But the search engines I want to use is not
recognised by MSN.
Am making the question more complicated or do I clear the dust around
the question ?

-Abhinav

Request for Question Clarification by aht-ga on 12 Feb 2004 18:39 PST
You've cleared the dust. The only non-MS-reliant approach for
MS-unknown search engines I am already aware of, is the method that
you've mentioned that you do not wish to use, namely the prefixed
method (as set up by QuickSearch.exe).

If I find something else that will help you, I'll let you know!

Regards,

aht-ga
Google Answers Researcher

Request for Question Clarification by aht-ga on 12 Feb 2004 22:12 PST
theabhinav-ga:

Well, based on everything I have found (including analyzing how the
CoolWebSearch hijackers do it), the only way to do this is to
intercept and replace 'auto.search.msn.com' with your own .ASP
redirector.

See the following article on MS' website for the details:

http://www.microsoft.com/windows/ieak/techinfo/deploy/60/en/searchau.htm

If you have access to an IIS server, you can host your own
'response.asp'. See the example at the bottom of the MS page (you will
need to click on it to expand it) for more information. This custom
response.asp would contain, simply:

----------------------------
<%@ Language=VBScript %>

<%

search = Request.QueryString("MT")
search = UCase(search)
searchOption = Request.QueryString("srch")

Response.Redirect("://www.google.com/keyword/" + search )

%>
----------------------------

where you would replace the Redirect URL in the last line with the
appropriate URL for your preferred search engine.

You will also need to trap 'auto.search.msn.com' by adding a line to
your hosts file (found in your System32/drivers/etc folder) to direct
that URL to your own IIS server's IP address.


So, while this is one option, it's a lot more complicated than you may
be looking for. Sorry!

Regards,

aht-ga
Google Answers Researcher

Request for Question Clarification by sublime1-ga on 13 Feb 2004 17:10 PST
theabhinav

If you'd be willing to use the MyIE2 superstructure on top
of the IE6 browser, you can set the address bar to search
from any of the included sites, which are:

http://www.steadysearch.com/search?p=Q&ts=ne&w=%s
http://www.sogua.com/mp3/search.asp?key=%s
http://cns.3721.com/cns.dll?platform=pc&fl=1&fd=1&name=%s
http://search.sina.com.cn/cgi-bin/search/search.cgi?ss=sina&_searchkey=%s&_andor=and
http://search.163.com/cgi-bin/search/engine/search.fcgi?key=%s
http://www1.baidu.com/baidu?word=%s&cl=3&ct=0&f=5&lm=0
http://search.kimo.com.tw/cgi-bin/srchfz.pl?query=%s
://www.google.com/search?q=%s

...or you can add and edit your own.

MyIE2 allows many additional customizations of IE, and offers
tabbed browsing, as well. You can learn more about it here:
http://www.myie2.com/html_en/home.htm

Let me know if this serves your purposes.

sublime1-ga

Clarification of Question by theabhinav-ga on 17 Feb 2004 10:35 PST
I thank you all for all the great solutions, but its still not close
to what I am looking for. I know there is a solution to it because
there are plenty of freewares/sharewares who have ability to override
autosearch settings.
And I need to find it. 

I can make it a 3 figure $ question if somebody can find me the answer ;-)

-Abhinav
Answer  
There is no answer at this time.

Comments  
Subject: Re: Change Autosearch URL in IE6
From: bazko213-ga on 18 Feb 2004 00:10 PST
 
Can I get the URL of the search engine that your are trying to use for
testing purposes?

I have several ideas, but want to be sure before I post.
Subject: Re: Change Autosearch URL in IE6
From: theabhinav-ga on 18 Feb 2004 08:24 PST
 
bazko213-ga,

The URL is not much important as much as the process/method of achieve the goal. 
But for the sake of simplicity, lets work on following URL:
http://mysearch.myway.com/jsp/GGmain.jsp?ptnrS=de&searchfor=XXXXX&st=site

where XXXX is the search query string.

Waiting for a solution.

-Abhinav
Subject: Re: Change Autosearch URL in IE6
From: theabhinav-ga on 18 Feb 2004 16:18 PST
 
I just raised the bid, any takers ?!

-Abhinav
Subject: Re: Change Autosearch URL in IE6
From: seftembr-ga on 20 Feb 2004 19:53 PST
 
Sadly, I am not a "Google expert researcher" and so I may only post
comments and not attempt to answer...
There is a way to do what you ask, and it's by replacing the standard
"URL Search Hook" in your system.
The search hook is the module that windows turns to whenever it cannot
determine the type of URLit has been given, for example when search
words are entered.
Under the registry key:
  HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\URLSearchHooks
there is the string value:
  "{CFBFAE00-17A6-11D0-99CB-00C04FD64497}" = ""
which points to a class installed in the system under that CLSID.
That class-id is pointing in its turn to SHDOCVW.dll, a dll that is
used in this regard to translate the search words into a search URL.

So, in order to have our own search method, we need to:
- create a search hook of our own
- install it in our system
- place it instead of SHDOCVW.dll under the key:
  HKEY_CLASSES_ROOT/CLSID/{CFBFAE00-17A6-11D0-99CB-00C04FD64497}

To compile such a dll, we can use the following code snippet:

----- start code snippet -----

 // IURLSearchHookImpl.h
 //
 //////////////////////////////////////////////////////////////////////
 #include <AtlCom.h>
 #include <ShlObj.h>
 
 class ATL_NO_VTABLE IURLSearchHookImpl: public IURLSearchHook
 {
 public:
 
     // IUnknown
     //
     STDMETHOD(QueryInterface)(REFIID riid, void** ppvObject) = 0;
     _ATL_DEBUG_ADDREF_RELEASE_IMPL( IURLSearchHookImpl )
 
 
     // IURLSearchHook
     //
     STDMETHOD(Translate)(LPWSTR lpwszSearchURL, DWORD cchBufferSize)
     {
         return E_FAIL;
     }
 };
 
 // Searcher.h : Declaration of the CSearcher
 
 #ifndef __SEARCHER_H_
 #define __SEARCHER_H_
 
 #include "resource.h"         
 #include "IURLSearchHookImpl.h"  
 
 /////////////////////////////////////////////////////////////////////////////
 // CSearcher
 class ATL_NO_VTABLE CSearcher : 
     public CComObjectRootEx<CComSingleThreadModel>,
     public CComCoClass<CSearcher, &CLSID_SearcherTo>,
     public IURLSearchHookImpl, 
     public IDispatchImpl<ISearcher, &IID_ISearcherTo, &LIBID_SEARCHERHOOKLib>
 {
 public:
     CSearcher() {}
 
 DECLARE_REGISTRY_RESOURCEID(IDR_Searcher)
 
 DECLARE_PROTECT_FINAL_CONSTRUCT()
 
 BEGIN_COM_MAP(CSearcher)
     COM_INTERFACE_ENTRY(ISearcher)
     COM_INTERFACE_ENTRY(IURLSearchHook)
     COM_INTERFACE_ENTRY(IDispatch)
 END_COM_MAP()
 
 // IURLSearchHook
 public:
     STDMETHOD(Translate)(LPWSTR, DWORD);
 };
 
 #endif //__SEARCHER_H_
 
 
 // Searcher.cpp : Implementation of CSearcher
 #include "stdafx.h"
 #include "Searcher.h"
 
 /////////////////////////////////////////////////////////////////////////////
 // CSearcher
 
 HRESULT CSearcher::Translate(LPWSTR lpwszSearchURL, DWORD cchBufferSize) 
 {
     const LPWSTR L_EXAMPLE_SEARCHSITE = L"http://www.mysearch.com?search=";
     LPWSTR wszURL = new WCHAR[cchBufferSize];
     wcscpy(wszURL, L_EXAMPLE_SEARCHSITE);
     wcsncat(wszURL, lpwszSearchURL, cchBufferSize);

     ZeroMemory(lpwszSearchURL, wcslen(wszURL));
     wcsncpy( lpwszSearchURL, wszURL, cchBufferSize);
     delete [] wszURL;
         
     return S_OK;
 }

----- end code snippet -----

compile that code as ATL project, get a dll.
slight changes may be needed - for example, it needs to translate
spaces to '%20's. but aside from these modifications, it should work.

when you get the dll compiled, place it somewhere safe, replace
'shdocvw.dll' where mentioned with your dll... and voila! it searches.

I tested the code and it works, so I hope you don't have problems with
getting it to work. I cannot sent binaries for obvious reasons :)

Hope this helps,
   Yonatan.
Subject: Re: Change Autosearch URL in IE6
From: theabhinav-ga on 22 Feb 2004 13:21 PST
 
Sounds intresting. Will it work for IE6? Independent across XP Home/Pro etc?
Also, would replacing SHDOCVW.dll in the registry affect any other
windows function?
I havent done such level of programming, so it would be really nice if
I could get some reference where I can find more information about
your suggested solution. I posted a comment yesterday but it was taken
off cos it had my email address.

So, how do I go about it ?

-Abhinav

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy