Domanda

Sembra un compito di base, ma non riesco a trovare una soluzione per qualche motivo.

Come posso installare a livello di codice un provider di ricerca in Internet Explorer? Sto usando NSIS per il mio programma di installazione.

È stato utile?

Soluzione

Non sembra esserci alcun modo documentato ufficialmente per installare manualmente un servizio di ricerca di Internet Explorer. Il metodo ufficiale sembra essere quello di implementare

window.external.AddSearchProvider("URL")

che, se visualizzato con IE 7+, richiederà all'utente di installare il servizio di ricerca.

Tuttavia, con un po 'di attenzione, sembra che IE 8, almeno, stia installando i servizi di ricerca nella seguente posizione (usando le variabili NSIS):

%LOCALAPPDATA%\Microsoft\Internet Explorer\Services\

Controlla quella cartella (dopo aver installato almeno un servizio di ricerca) per vedere la struttura. Sembra che tu abbia solo bisogno di un .ico e (possibilmente) un OpenSearch .xml. Avrai anche bisogno di alcune impostazioni del registro (descritte di seguito).

Tuttavia, per ricerche semplici (nessun suggerimento automatico) sembra che tu possa cavartela semplicemente impostando il tuo servizio di ricerca nel registro. La posizione delle impostazioni di ricerca nel registro è:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchScopes\{guid}

dove {guid} è un GUID che identifica il servizio di ricerca. Ancora una volta, basta esaminare ciò che hanno fatto altri servizi di ricerca in quanto non sembra esserci alcuna documentazione ufficiale per questo tipo di cose. Google, ad esempio, specifica semplicemente un URL per il loro servizio utilizzando le sostituzioni OpenSearch nell'URL per ottenere la magia.

NOTA: poiché apparentemente non esiste documentazione pubblica su questo, è probabile che tutto ciò possa cambiare in futuro. Se non usi il metodo ufficiale (nel browser) potresti finire con il supporto di più metodi di installazione diversi.

Buona fortuna!

Altri suggerimenti

http://msdn.microsoft.com /en-us/library/cc849066(v=vs.85).aspx ora sembra essere il metodo supportato per IE8 +

Scarica l'SDK IE8 da http://www.microsoft.com /download/en/details.aspx?id=22015 e utilizzare i file openservice.h e openservice.idl per chiamare le funzioni pertinenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top