Il est possible de le faire d'une manière très hacky et sujette à la rupture en utilisant la fonction API Win32 FindWindow.
L'exemple C++ suivant qui trouve une instance en cours d'exécution du calculateur Windows et récupère la valeur du champ d'édition. Vous devriez être capable de faire quelque chose de similaire en C#. Avertissement: Je n'ai pas vérifié pour s'assurer que ce code compile, désolé. :)
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;
}
Pour connaître les bons paramètres à utiliser dans FindWindow et FindWindowEx, utilisez l'outil Visual Studio Spy ++ pour inspecter une instance en cours d'exécution de la fenêtre du navigateur. Désolé, je n'ai pas d'exemple de code pour les navigateurs Web, mais cela devrait être possible. Notez que votre solution sera spécifique au système d'exploitation Windows et que les modifications apportées à l'architecture de l'interface utilisateur dans les futures versions des navigateurs Web pourraient empêcher votre solution de fonctionner.
L'utilisation de cette méthode pour sortir directement l'URL de la barre d'adresse ne fonctionne évidemment que pour l'onglet en cours. Je ne vois pas comment cela fonctionnerait pour tous les onglets à moins que vous n'ayez fait quelque chose de vraiment compliqué comme simuler une entrée utilisateur pour parcourir les onglets. Ce serait très intrusif et un utilisateur pourrait facilement gâcher votre application en l'interrompant avec sa propre entrée, mais cela pourrait fonctionner si vous écrivez quelque chose qui fonctionne sans surveillance, comme un script de test automatisé. Si tel est le cas, vous pouvez vouloir regarder dans d'autres outils comme AutoIt.
Ce conseil est paraphrasé à partir d'un blog post j'ai écrit une fois. Bonne chance!
Vous devriez mentionner que vous essayez de le faire à partir d'une application externe comme C#, et si l'utilisation de C# est une exigence, vous devez définitivement étiqueter la question en C#. – Parappa