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:
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.
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.
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.