Это можно сделать очень хакерским способом, склонным к поломке, используя функцию WinW API API FindWindow.
Следующий пример C ++, который находит работающий экземпляр Windows Calculator и получает в нем значение поля редактирования. Вы должны быть в состоянии сделать что-то подобное в C #. Отказ от ответственности: я на самом деле не проверил, чтобы убедиться, что этот код компилируется, извините. :)
float GetCalcResult(void)
{
float retval = 0.0f;
HWND calc= FindWindow("SciCalc", "Calculator");
if (calc == NULL) {
calc= FindWindow("Calc", "Calculator");
}
if (calc == NULL) {
MessageBox(NULL, "calculator not found", "Error", MB_OK);
return 0.0f;
}
HWND calcEdit = FindWindowEx(calc, 0, "Edit", NULL);
if (calcEdit == NULL) {
MessageBox(NULL, "error finding calc edit box", "Error", MB_OK);
return 0.0f;
}
long len = SendMessage(calcEdit, WM_GETTEXTLENGTH, 0, 0) + 1;
char* temp = (char*) malloc(len);
SendMessage(calcEdit, WM_GETTEXT, len, (LPARAM) temp);
retval = atof(temp);
free(temp);
return retval;
}
Чтобы найти правильные параметры для использования в FindWindow и FindWindowEx, используйте инструмент Spy ++ для Visual Studio, чтобы проверить работающий экземпляр окна браузера. Извините, у меня нет примера кода для веб-браузеров под рукой, но это должно быть возможно. Обратите внимание, что ваше решение будет зависеть от ОС Windows, а также изменения в архитектуре пользовательского интерфейса в будущих версиях веб-браузеров могут привести к прекращению работы вашего решения.
Использование этого метода для поднятия URL-адреса прямо из адресной строки, очевидно, работает только для текущей вкладки. Я не могу понять, как это будет работать для всех вкладок, если вы не сделали что-то действительно сложное, например, имитация пользовательского ввода для циклического переключения между вкладками. Это было бы очень навязчиво, и пользователь мог бы легко испортить ваше приложение, прерывая его собственным вводом, но это может сработать, если вы пишете что-то, что выполняется без присмотра, например, сценарий автоматического тестирования. Если это так, вы можете посмотреть другие инструменты, такие как AutoIt .
Этот совет перефразирован из сообщения в блоге Я однажды написал. Удачи!