Browser e comunicazione esterno app? (Url di Chrome attuale e referrer su Windows?)
-
19-09-2019 - |
Domanda
Come potrebbe un programma esterno comunicare con un browser? Speriamo che questo sarà di qualche utilità per gli altri: Sto sfogliare fuori una serie di opzioni che ho visto o provato, senza successo, mentre ottenere questo al lavoro. Se siete a conoscenza di altri, lascia un commento.
- Se Mac, utilizzare AppleScript (informazioni / soluzione a q.263741 , provare questa ricerca )
- Usare o creare un'estensione per Firefox ( iMacros ?, q.410411 ), Chrome (?)
- controllo WebBrowser per ospitare un'istanza di IE (alcuni punte a q.1143187 )
- Se siete il proprietario del sito, questo può essere fatto con uno script di sfondo ajax
La mia domanda: come posso ottenere la corrente del browser in primo piano (Chrome, specifcally) URL e referrer da un finestre esterno app, senza modificare il browser
?Ho provato con GetWindowText di User32, che prende il titolo (usando jNative per Java). Questo spesso mi permette di indovinare il server. Potrebbe essere possibile scrivere un proxy locale che mapperà i titoli per gli URL, ma questo è molto lavoro. Ho scritto un'estensione per Firefox per attrezzare il titolo della finestra con queste informazioni, ma è diventato obsoleto, e ho bisogno di questo per Chrome ora comunque. Preferirei non aggiungere spazzatura al browser, a meno che in generale utile. Forse potrei presentare una richiesta di funzionalità per un'API AppleScript simile per Chrome su Windows. AHK finestra informazioni 1.7 riesce ad afferrare l'URL (ma non referrer) sotto visibile / nascosta il testo, ma non ho idea di come porto del codice che utilizza.
(Alcune informazioni per FF / C # a q.990409 & qui , alcune informazioni IE a q.823755 (reindirizza a q.352236 ) Nessuna informazione a q.1107978. Ignorare questo: Domande correlate: Come posso controllare firefox con una macro? Come posso ottenere informazioni sul browser? Come posso ottenere l'URL corrente del browser? Come posso ottenere l'URL corrente di Chrome da un'applicazione esterna? )
Le idee, esempi di codice, i puntatori alle domande potenzialmente rilevanti, e le risposte alla mia domanda specifica sono tutti apprezzati.
Soluzione
Soluzione rapida e sporca (è possibile convertirlo da Delphi per la lingua):
var
h : HWND;
pCh : array [0..255] of char;
begin
Result := '';
h := GetForegroundWindow; // or pass main Chrome window here
if h = 0 then exit;
h := GetWindow(h,GW_CHILD);
if h = 0 then exit;
h := GetWindow(h,GW_HWNDNEXT);
if h = 0 then exit;
SendMessage(h, WM_GETTEXT, SizeOf(pCh), integer(@pCh)) ;
Result := pCh; // <-- URL is here!
end;
Grazie per la domanda;) - appena aggiunto al nostro WorkTime - tempo software di monitoraggio