Index: src/ch/UpdaterDlg.cpp =================================================================== diff -u -N -rf50eaa3403491acfd602db81dd39dcdb8078a99a -rb82ebc5caf998dbfd61370968f0438d8fb74897a --- src/ch/UpdaterDlg.cpp (.../UpdaterDlg.cpp) (revision f50eaa3403491acfd602db81dd39dcdb8078a99a) +++ src/ch/UpdaterDlg.cpp (.../UpdaterDlg.cpp) (revision b82ebc5caf998dbfd61370968f0438d8fb74897a) @@ -60,7 +60,19 @@ void CUpdaterDlg::OnBnClickedOpenWebpageButton() { - ShellExecute(NULL, _T("open"), m_ucChecker.GetDownloadAddress(), NULL, NULL, SW_SHOW); + CString str; + str.Format(_T("Opening a browser with address %s..."), (PCTSTR)m_ucChecker.GetDownloadAddress()); + LOG_DEBUG(str); + + str.Format(_T("url.dll,FileProtocolHandler %s"), (PCTSTR)m_ucChecker.GetDownloadAddress()); + ulong_t ulRes = (ulong_t)ShellExecute(NULL, _T("open"), _T("rundll32.exe"), str, NULL, SW_SHOW); + + str.Format(_T("ShellExecute returned %lu"), ulRes); + LOG_DEBUG(str); + + // close the dialog if succeeded; 32 is some arbitrary value from ms docs + if(ulRes > 32) + CUpdaterDlg::OnOK(); } void CUpdaterDlg::OnTimer(UINT_PTR nIDEvent)