Re[2]: Запуск бровзера по умолчанию в новом окне.
От: TSS Россия http://www.sdl.ru
Дата: 06.12.01 14:29
Оценка:
Здравствуйте DNS, Вы писали:

DNS>Есть вариант, но корявенький.

DNS>Перед запуском ShellExecute надо попортить\удалить запись в реестре на нужный протокол (http для примера) в разделе реестра HKCR\http\shell\ddeexec\Application чтобы браузер не смог ответить на dde-мессагу, которую пошлёт ShellExecute, и тогда запустит новое приложение.
DNS>После всего восстанавливаешь запись в реестре.

DNS>Как вариант?


Нормально...
Вот только извратно очень.
Signed, [TSS] /SDL/
Re[3]: Нетскейпу посвящается!!!!
От: Gambler  
Дата: 07.12.01 10:16
Оценка:

BOOL CMainWnd::Navigate2UrlNewWnd(LPCTSTR szUrl)
{
    // Ïîëó÷èì áðîóçåð ïî óìîë÷àíèþ
    HKEY hkey;

    LONG lres = ::RegOpenKeyEx( HKEY_CLASSES_ROOT, _T("http\\shell\\open\\command"),
        0, KEY_READ, &hkey );


    if( lres != ERROR_SUCCESS )
        return FALSE;

    DWORD dwType = 0, dwnBytes = MAX_PATH;
    _TCHAR buff[MAX_PATH] = {0};
    lres = ::RegQueryValueEx( hkey, NULL, 0, &dwType, (LPBYTE)buff, &dwnBytes );

    if( lres != ERROR_SUCCESS )
    {
        ::RegCloseKey(hkey);
        return FALSE;
    }

    ::RegCloseKey( hkey );

    //.....................................

    _stprintf( buff, _T("%s %s"), buff, szUrl );

    STARTUPINFO si; 
    PROCESS_INFORMATION pi; 

    ZeroMemory( &si, sizeof(si) ); 
    si.cb = sizeof(si); 
    ZeroMemory( &pi, sizeof(pi) ); 

    return ::CreateProcess( NULL, buff,
        NULL, NULL, FALSE, 0, 
        NULL, NULL, &si, &pi );

}



Сразу к вопросу а почему http а не htmlfile? Дык потому что NN пишет свои настройки иммено туда, но не радуйтесь этот код будет работать только с IE т.к. уважаемый многими NN имеет свою особенную строку со своим только ему понятным форматом — XXXXXXX.exe -url "%1" вот мля в эту "%1" нужно поставить свой урл, уроды мля, я бы всех юзеров NN ставил к стенке мля, сколько можно мля?

-------------------------------------------------------------------

Вызывает презедент к себе коров и говорит:
— Ну, что будем сдавать, молоко или мясо?
(с) Г. Явлинский TV6 — Герой дня (18.04.2002)
Re[3]: Запуск бровзера по умолчанию в новом окне.
От: Gambler  
Дата: 07.12.01 10:42
Оценка: 6 (1)
А вот это работает с IE и NN
на здоровие!

BOOL CMainWnd::Navigate2UrlNewWnd(LPCTSTR szUrl)
{
    // Ïîëó÷èì áðîóçåð ïî óìîë÷àíèþ
    HKEY hkey;

    LONG lres = ::RegOpenKeyEx( HKEY_CLASSES_ROOT, _T("http\\shell\\open\\command"),
        0, KEY_READ, &hkey );


    if( lres != ERROR_SUCCESS )
        return FALSE;

    DWORD dwType = 0, dwnBytes = MAX_PATH;
    _TCHAR buff[MAX_PATH] = {0};
    lres = ::RegQueryValueEx( hkey, NULL, 0, &dwType, (LPBYTE)buff, &dwnBytes );

    if( lres != ERROR_SUCCESS )
    {
        ::RegCloseKey(hkey);
        return FALSE;
    }

    ::RegCloseKey( hkey );

    _TCHAR *tstr = _tcsstr( buff, _T("\"%1\""));
    
    if( tstr != NULL )
    {
        // ¨áàÍÍûé íåòñêåéï!!!!!!!!!!!!!
        *(tstr+2) = _T('s');

        _TCHAR buff2[MAX_PATH];
        _stprintf( buff2, buff, szUrl );
        _tcscpy(buff,buff2);
    }
    else
    {
        _stprintf( buff, _T("%s %s"), buff, szUrl );
    }

    //.....................................



    STARTUPINFO si; 
    PROCESS_INFORMATION pi; 

    ZeroMemory( &si, sizeof(si) ); 
    si.cb = sizeof(si); 
    ZeroMemory( &pi, sizeof(pi) ); 

    return ::CreateProcess( NULL, buff,
        NULL, NULL, FALSE, 0, 
        NULL, NULL, &si, &pi );

}
-------------------------------------------------------------------

Вызывает презедент к себе коров и говорит:
— Ну, что будем сдавать, молоко или мясо?
(с) Г. Явлинский TV6 — Герой дня (18.04.2002)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.