Laden...

Webseiten Link automatisch abfragen

Erstellt von iSteffen vor einem Jahr Letzter Beitrag vor einem Jahr 606 Views
I
iSteffen Themenstarter:in
16 Beiträge seit 2022
vor einem Jahr
Webseiten Link automatisch abfragen

Hallo Forum,

ich habe ein für mich unlösbares Problem. Ich möchte immer die aktuelle TeamViewer Quick Version herunterladen. Leider ist die URL nach jedem Update eine andere.

Wie bin ich zu dieser URL gekommen? Ich habe auf folgender URL ein Rechtsklick auf "Erneut versuchen" gemacht und mir die URL gespeichert (

TeamViewer
). Diese ändert sich, wie zuvor erwähnt, nach jedem Update von TeamViewer. Wie kann ich eine Abfrage nach dieser URL machen? Das er mir immer die aktuelle nimmt?

Ziel ist es immer eine aktuelle TeamViewer QuickSupport Version herunterzuladen. Dies mache ich aktuell mit folgendem Code:


 public void TVLoad()
        {
            string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            string remoteUri = "https://customdesignservice.teamviewer.com/download/windows/v15/pc6axfs/TeamViewerQS.exe?sv=2020-04-08&se=2022-06-25T20%3A15%3A22Z&sr=b&sp=r&sig=AFFtrP5I8v0FxyZTJm9WCYQtH%2BtZ8vDl0rahfQ21%2BEo%3D&1656101722991";  <- DIESE URL ÄNDER SICH IMMER
            string filePath2;
            string desktopPath2 = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            filePath2 = desktopPath + "/Fernwartung.exe";
            File.Delete(filePath2);
            WebClient myWebClient = new WebClient();
            myWebClient.DownloadFile(remoteUri, filePath2);
            Process.Start(filePath2);
        }

Gruß
iSteffen

187 Beiträge seit 2009
vor einem Jahr

Also ich würde es wahrscheinlich mit einer Regenechse machen.
Es wird sich ja wahrscheinlich nur der Teil nach dem ? ändern.

D
152 Beiträge seit 2013
vor einem Jahr

Ist das eine personalisierte Version TeamViewer QuickSupport?

Download von TeamViewer für die verschiedenen Plattformen ist unter https://www.teamviewer.com/de/download/ erreichbar.

Der Download für die normale aktuelle Version vom QuickSupport ist doch immer der gleiche.
https://download.teamviewer.com/download/TeamViewerQS.exe

I
iSteffen Themenstarter:in
16 Beiträge seit 2022
vor einem Jahr

Das ist ein Custom TeamViewer.

Wie könnte den die Regex Anfrage hierfür aussehen? Und bleib ich dann bei der „WebClient“ Klasse? Oder sollte ich etwas anderes nehmen?

Gruß
iSteffen

D
152 Beiträge seit 2013
vor einem Jahr

Die WebClient Klasse sollte nicht mehr verwendet werden, sondern die HttpClient Klasse.

2.079 Beiträge seit 2012
vor einem Jahr

Zieh dir das HTML, danach kannst Du entweder mit XPath danach suchen, oder Du greifst zu einem Web-Framework, das HTML anhand von CSS-Selektoren absuchen kann.
Welchen XPath bzw. CSS-Selector Du brauchst, kannst Du über die Dev-Tools von deinem Browser herausfinden, der zeigt dir ja alles an, wonach Du filtern kannst.

NuGet Packages im Code auslesen
lock Alternative für async/await

Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.

D
261 Beiträge seit 2015
vor einem Jahr

Die von dir gepostete Webseite fragt beim Laden eine API an und tauscht dann on-the-fly den Downloadlink gegen die Antwort der API aus.
So könntest du das in C# abbilden:


using System.Text;
using System.Text.Json;

public class Program
{
    public static async Task Main()
    {
        var data = new
        {
            ConfigId = "pc6axfs",
            Version = 15,
            IsCustomModule = true,
            Subdomain = 1,
            ConnectionId = ""
        };

        string jsonData = JsonSerializer.Serialize(data);

        HttpClient client = new();
        // User-Agent muss gesetzt sein, sonst kommt ein 404 von der API zurück, wird zur Bestimmung des OS verwendet
        client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Microsoft Windows 10)"); 

        var response = await client.PostAsync(
            "https://get.teamviewer.com/api/CustomDesign", // ob du die API verwenden darfst kann ich dir nicht sagen, ist nicht offiziell von Teamviewer dokumentiert
            new StringContent(jsonData, Encoding.UTF8, "application/json"));
        
        var contents = await response.Content.ReadAsStringAsync(); // hier steht deine Download-URL drin, aber mit führenden und nachgestellten Anführungszeichen
		
        Console.WriteLine(contents);
    }
}


I
iSteffen Themenstarter:in
16 Beiträge seit 2022
vor einem Jahr

Mega gut! Das ist genau das was ich gesucht habe.

Kann ich Version noch irgendwie automatisch abfragen?

Es wird in Zukunft bestimmt die Version 16,17,18… kommen.

T
2.224 Beiträge seit 2008
vor einem Jahr

Im einfachsten Fall kannst du doch durch iterieren und merken der letzten Version die aktuelle ermitteln.
Dafür brauchst du nur eine for Schleife die ab der letzten Version die Folgeversionen ermittelt.
Die neu Version muss dann nur gemerkt werden, damit beim nächsten Durchlauf wieder die Folgeversion gesucht wird.

Sollte jetzt keine Raketenwissenschaft sein 🙂
Version kannst du dann in eine Textdatei schreiben.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

16.834 Beiträge seit 2008
vor einem Jahr

Lass ich einfach mal als Hinweis da:

HttpClient is intended to be instantiated once and reused throughout the life of an application.