2016-02-08 10 views
6

Abbiamo un'applicazione che viene eseguita come servizio su Windows. Il servizio verifica periodicamente le istanze di Internet Explorer attive utilizzando SHDocVw.ShellWindows(). Con questo, siamo in grado di catturare l'URL in ciascuna delle istanze di IE.Scopri i punti di avvio delle istanze di IE attive di windows

La mia domanda: E 'possibile scoprire come è stata lanciata la pagina web in ciascuna di queste istanze di IE. Ad esempio -

  • L'utente ha inserito l'URL in IE per caricare la pagina Web?
  • L'utente ha selezionato il collegamento da un'altra scheda IE per l'avvio?
  • Forse il lancio utente dell'istanza IE da un'altra applicazione desktop come Outlook, ecc

Grazie.

+0

Per spiare completamente IE, è necessario utilizzare strumenti di spionaggio reali: https://en.wikipedia.org/wiki/Browser_Helper_Object. Se controlli il desktop, puoi configurare un BHO che possa spiare IE (in questo caso, dato che è in-process, e ha accesso al modello a oggetti di IE, può fare un sacco di cose) e riferire al tuo servizio. –

risposta

2

La cosa più vicina che ho potuto trovare per il vostro requisito specifico era this anche controllare lo part 2 dello stesso blog in cui sono stati discussi alcuni casi limite.

La parte 1 del blog parla di una chiave del Registro di sistema denominata TypedURLs (percorso: HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ TypedURLs) che è possibile trovare nell'editor del Registro di sistema, le regole di aggiornamento di questa chiave sono come questa :

Se un collegamento viene copiato e incollato da una pagina web alla barra degli indirizzi URL e l'utente preme entrare, questo sarà anche popolano la chiave, in quanto questo è simile a digitare fisicamente l'intero indirizzo. Se viene immesso un indirizzo non valido di una pagina Web o di una risorsa che non può essere individuata, la chiave non verrà popolata fino a quando non viene completata la connessione o la richiesta (se è riuscita o meno). Se la funzione Stop di IE viene selezionata prima che la connessione sia terminata o che la risorsa sia localizzata, la chiave non verrà popolata.

È importante notare che i siti Web visitati con il browser tramite collegamenti ipertestuali, reindirizzamenti, il menu Preferiti IE o la home page dell'utente non popoleranno questa chiave. Inoltre, quando un utente seleziona di cancellare la cronologia di navigazione utilizzando la funzione incorporata di IE, questo tasto viene cancellato.

Spero che sia d'aiuto!

+0

Grazie per i link e il tuo tempo. Ho letto i blog. Può parzialmente risolvere il problema. Ma il metodo non è affidabile come indicato nella parte 2. – indusBull

+0

Sì, comprendo che non è affidabile e ti suggerisco decisamente contro se la funzionalità richiesta è orientata alla sicurezza ma se stai cercando un tipo di funzionalità aggiuntiva come Microsoft Completamento automatico (menzionato nella prima parte del blog) quindi credo che questo dovrebbe fare il lavoro. –

+0

Nota: poiché la chiave è HKEY_CURRENT_USER e stiamo parlando di un servizio, per impostazione predefinita leggerete l'attività dell'utente del servizio che probabilmente non sarà presente. Quindi è necessario implementare la lettura di più chiavi, l'alveare di ogni utente. Inoltre, è possibile che l'account di servizio non disponga dell'autorizzazione di accesso a tali hive, a seconda di come è stato configurato l'avvio del servizio. –

Problemi correlati