[Gelöst] Vordefinierte URL in einem Browser öffnen



  • Hallo zusammen,

    ich würde gerne eine Funktion haben, mit der ich (vermutlich nur auf windows, ich nehm aber gern auch Plattformunabhängig) eine URL, z.B. "www.beispiel.de" in einem Browser öffnen kann (vermutlich im default Browser).

    Für C# scheint das relativ einfach zu sein, für C++ hab ich nur eine Lösung mit 'system' call gefunden, die ich aber aufgrund dessen, was ich hier so gelernt habe, nicht unbedingt verwenden möchte.

    Falls jemand eine einfache Methode/Bibliothek kennt, ich wäre Ihm/Ihr sehr dankbar.

    Zweck ist folgender: Auf dem Titelbildschirm meines Spieles sind etwas wie "Danksagungen/Credits", wo ich 1-2 Quellen von Spielinhalten, welche ich nicht selbst erstellt habe, nenne. Ich möchte gerne einen Hyperlink implementieren, sprich: Wenn jemand auf den dort abgebildeten Link clickt, öffnent sich direkt die Website. Wir wissen ja alle wie faul der Mensch ist, und niemals von alleine diese URL mal eingeben würde.

    LG
    HareWare



  • HarteWare schrieb:

    Für C# scheint das relativ einfach zu sein, für C++ hab ich nur eine Lösung mit 'system' call gefunden, die ich aber aufgrund dessen, was ich hier so gelernt habe, nicht unbedingt verwenden möchte.

    Für sowas ist es schon ok. Alle anderen Varianten werden auf dasselbe hinauslaufen, geht ja nicht anders.
    Unter Windows würde ich ShellExecute nehmen. Wenn du Qt benutzt, gibts sowas wie QDesktopServices::openUrl.



  • Das hier öffnen zumindest bei mir einen neuen Tab von Firefox mit der entsprechenden Seite:

    ShellExecute(NULL, "open", "http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);
    


  • Hinweis: ich würde "open" nicht angeben, das default Verb muss nicht open heißen, damit ich hatte ich schon paar mal Probleme.



  • Hallo,

    vielen Dank für eure Antworten.

    Bei mir gibt es Fehler, von wegen Konvertierung zu LPCWSTR schlägt fehl, desweiteren "ShellExecute does not take 5 Arguments", wenn ich "open" weglasse.

    In dieser Ausführung kompiliert es zwar, aber von Microsoft's Website ist weit un breit nichts zu sehen. Auch wenn ich sogar den IE davor öffne. Was mach ich falsch?

    ShellExecute(NULL, LPCWSTR("open"), LPCWSTR("http://www.microsoft.com"), NULL, NULL, SW_SHOWNORMAL);
    

    Den Aufruf hab ich jetzt einfach mal an den Beginn meiner main() gesetzt.



  • HarteWare schrieb:

    desweiteren "ShellExecute does not take 5 Arguments", wenn ich "open" weglasse.

    Nicht weglassen, wenn schon, dann einen Leerstring übergeben. Vielleicht will er Unicode, als L vor den String schreiben, L"www..."



  • Hallo nochmals,

    diese Variante funktioniert nun, vielen Dank:

    ShellExecute(NULL, L"", L"http://www.microsoft.com", NULL, NULL, SW_SHOWNORMAL);
    

    LG


Log in to reply