Registrierten Browser abfragen!



  • Wie frage ich ab, welcher Browser im System registriert ist als Standardbrowser und wo der liegt? Ich möchte nämlich per WinExec oder ShellExecute dann einen Link dahin senden.



  • Ob das die goldene Lösung ist weiß ich nicht, aber es sollte gehen.

    DWORD size = 260*sizeof(TCHAR);
        CString strBrowser;
        SHGetValue(HKEY_CLASSES_ROOT, _T("http\\shell"), _T(""), NULL, strBrowser.GetBuffer(size/sizeof(TCHAR)), &size);
        strBrowser.ReleaseBuffer();
        if (0 == strBrowser.GetLength())
            strBrowser = _T("open");
    
        size = 260*sizeof(TCHAR);
        SHGetValue(HKEY_CLASSES_ROOT, _T("http\\shell\\") + strBrowser + _T("\\command"), _T(""), NULL, m_browserPath.GetBuffer(size/sizeof(TCHAR)), &size);
        m_browserPath.ReleaseBuffer();
    
        if (m_browserPath.GetLength())
        {
            m_browserPath.TrimLeft();
            if (m_browserPath[0] == '\"')
                m_browserPath.Delete(0);
    
            int pos = m_browserPath.Find('\"');
    
            if (pos == -1)
            {
                int t = -1; // Letzten '.' suchen
                while (-1 != (t = m_browserPath.Find('.', t + 1)))
                    pos = t;
    
                if (pos == -1) // Es gibt keinen Punkt im Pfad
                    pos = 0;
    
                pos = m_browserPath.Find(' ', pos);
            }
    
            if (pos != -1)
                m_browserPath.ReleaseBuffer(pos);
            m_browserPath.TrimRight();
        }
    


  • Muss ich dafür was includen? Er kennt/findet SHGetValue nicht!
    Und das muss doch auch leichter gehen. Ich glaube nicht, daß jedes Programm erst in der Registry suchen muss, um den registrierten Browser zu finden...

    [ Dieser Beitrag wurde am 24.11.2002 um 19:54 Uhr von ElDiablo666 editiert. ]



  • @ElDiablo666

    Was genau willst Du realisieren ???
    Das sich auf User-Aktion der Defaultbrowser mit einer bestimmten URL öffnet ???

    Das würde nämlich schon mit diesem 1. Zeiler funktionieren ( steht auch im FAQ (IMHO))

    ShellExecute(NULL, "open", "http://www.c-plusplus.net", NULL, NULL, SW_SHOW);
    

    Weiß ja nun nicht was Du genau machen willst...

    MfG veganza

    [ Dieser Beitrag wurde am 24.11.2002 um 20:16 Uhr von veganza editiert. ]



  • Original erstellt von veganza:
    @ElDiablo666
    Was genau willst Du realisieren ???
    Das sich auf User-Aktion der Defaultbrowser mit einer bestimmten URL öffnet ???

    Genau so!
    Dann werde ich ich das nachher testen! Thanx! 🙂



  • Klappt!
    Danke!
    Das war ja einfach... 😃


Anmelden zum Antworten