C# obtendo URL de qualquer navegador

Status
Not open for further replies.

Trazzi

New member
Joined
Nov 30, 2023
Messages
1
Programming Experience
10+
Bom dia Pessoal, tudo em paz? Estou criando uma aplicação WindowsFormsApplication em C# onde quero monitorar as URL's que estão sendo abertas em qualquer navegador que tenha no computador. Uma forma que encontrei (exemplo abaixo com Chrome) é monitorar o processo, vejam:

code:
Bom dia Pessoal, tudo em paz? Estou criando uma aplicação WindowsFormsApplication em C# onde quero monitorar as URL's que estão sendo abertas em qualquer navegador que tenha no computador. Uma forma que encontrei (exemplo abaixo com Chrome) é monitorar o processo, vejam:

foreach (Process process in Process.GetProcessesByName("chrome"))
{
    String url = GetChromeUrl(process);
    Int32 idProcesso = Convert.ToInt32(process.Id);

    if (url == null)
        continue;

    if (url != String.Empty && idProcesso > 0)
        splitURL(url, idProcesso);
}

public static String GetChromeUrl(Process process)
{
    if (process == null)
        throw new ArgumentNullException("process");

    if (process.MainWindowHandle == IntPtr.Zero)
        return null;

    AutomationElement element = AutomationElement.FromHandle(process.MainWindowHandle);
    if (element == null)
        return null;

    AutomationElementCollection edits5 = element.FindAll(TreeScope.Subtree, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Edit));
    AutomationElement edit = edits5[0];
    String vp = ((ValuePattern)edit.GetCurrentPattern(ValuePattern.Pattern)).Current.Value as String;

    return vp;
}
Funciona? Sim.

Acontece que temos dois problemas: 1) Número de navegadores, podendo ser Chrome, Edge, Firefox, IE e outros, e com o exemplo acima eu terei que tratar um por um; 2) Atualizações, e isso acontece bastante com o Chrome, as vezes necessitando alterar o código por conta de updates que acontecem nas versões do Chrome. Os dois problemas acontecem porque eu busquei uma solução através do "processo" que está rodando e nele busco as informações de URL, porem busco e aceito outras sugestões.

Dessa forma pergunto: teria uma forma de buscar na(s) placa(s) de rede ou qualquer outra forma diferente da que já implementei de buscar a url que esta sendo acessada em qualquer navegador?

Muito obrigado a todos. Obs: minha conta é nova, mas é por conta da minha conta de mais de 10 anos ter perdido o acesso e até agora não conseguir recuperar.
Funciona? Sim.

Acontece que temos dois problemas: 1) Número de navegadores, podendo ser Chrome, Edge, Firefox, IE e outros, e com o exemplo acima eu terei que tratar um por um; 2) Atualizações, e isso acontece bastante com o Chrome, as vezes necessitando alterar o código por conta de updates que acontecem nas versões do Chrome. Os dois problemas acontecem porque eu busquei uma solução através do "processo" que está rodando e nele busco as informações de URL, porem busco e aceito outras sugestões.

Dessa forma pergunto: teria uma forma de buscar na(s) placa(s) de rede ou qualquer outra forma diferente da que já implementei de buscar a url que esta sendo acessada em qualquer navegador?

Muito obrigado a todos. Obs: minha conta é nova, mas é por conta da minha conta de mais de 10 anos ter perdido o acesso e até agora não conseguir recuperar.
 
Please repost in English.
 
Status
Not open for further replies.
Back
Top Bottom