Link unsichtbar öffnen C#?
Hallo zusammen,
Meine Frage sollte schon deutlich genug sein.
Ich bräuchte einen Quellcode für mein kleines GUI-Tool.
Und zwar gibt es ein Textfeld und einen Button.
In das Textfeld gibt man einen bestimmten Text ein und klickt anschließend den Button. Es wird ein Link geöffnet, der den eingegebenen Text enthält. Etwa so:
https://meinLink.com/eingegebenerText
Das ganze wird so ausgeführt, dass der Link im Standardbrowser geöffnet wird - Also logischerweise sichtbar für den Nutzer.
Ich hätte es aber gern so, dass das Tool das selbst macht und nach Abschließung eine Meldung anzeigt, dass der Vorgang erfolgreich war.
Ist das irgendwie möglich? Wenn ja, bitte ich um Quellcode (und am besten mit Erklärung dazu)!
Herzlichen Dank im Voraus!
4 Antworten
Naja, am einfachsten wäre es ja, einen HTTP Web Request in C# zu machen. Was soll denn passieren? Beim Abrufen durch den Browser werden ja auch weitere Dateien, die im Content verlinkt sind, nachgeladen. Das müsstest Du ja auch tun.
Eine weitere Möglichkeit wäre ggf., die Webseite in einem auf Hidden gesetzten WebBrowser-Control im Form zu laden - dann hättest Du einen "versteckten" Browser.
Was soll das bringen?
Oder steht dahinter keine Website, sondern eine Web-API?
Jedenfalls macht der Browser nichts anderes, als einen HTTP-GET-Request abzusetzen und den HTTP-Quelltext, der zurück kommt, anzuzeigen.
Das kannst Du auch selber machen, z.B. mit dem HttpClient bzw. seit .NET Core 2.1 die HttpClientFactory, die ist gerade bei häufigen Requests die bessere Alternative.
Du setzt dann den HTTP-GET-Request ab und tust irgendwas mit dem Ergebnis - nur eben nicht anzeigen.
Dann HttpClient oder HttpClientFactory.
Oder, wenn es komplexer werden kann, dann nimmt dir das geniale Framework "Refit" einiges an Arbeit ab. Damit konfigurierst Du den Endpunkt in einem Interface und das Framework generiert die Implementierung automatisch, sodass Du kaum noch etwas tun musst.
Ja, das ist möglich. Schaue Dir mal die Dokumentation zu Process.Start an.
Der Teil, festzustellen, ob die Seite erfolgreich aufgerufen werden konnte oder vielleicht die Netzwerkverbindung klemmt, ist schwieriger: Hier könntest Du Dir mal CefSharp als Alternative angucken.
Fertiger Quellcode kostet Geld, Hilfe und Hinweise gibt es kostenfrei.
Das hier sollte dir weiterhelfen. Bin mit C# nicht so bewandert.
https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/console-webapiclient
Ganz genau. Eine Web-API.