Hodo33 Posted November 30, 2019 Share Posted November 30, 2019 This is the callgotoWebPage("http://www.myweb.com/info.html");this is the fail response in logPlatform::openWebBrowser - Failed to open the HKCR\http registry key!!!The program is being run from downloads, just unzipped into a directory there.Works on my machine but not others. They tried run as admin as well it fails Quote Link to comment Share on other sites More sharing options...
Happenstance Posted November 30, 2019 Share Posted November 30, 2019 It's an issue with their OS rather than your app/Torque. Platform::openWebBrower() will fail on Windows machines if it can't find the registry key that points to the user's default web browser.More info and some possible solutions:https://social.msdn.microsoft.com/Forums/windows/en-US/aa3a1535-aa86-4afe-9fa2-c6345682efc9/registry-key-for-default-browser?forum=windowsgeneraldevelopmentissues Quote Link to comment Share on other sites More sharing options...
Bloodknight Posted November 30, 2019 Share Posted November 30, 2019 just to add to this, I'm sure it's not the default web browser, it's one of those commands that launch internet explorer, this happens quite a lot from a variety of applications, and many people uninstall it for whatever reason. Quote Link to comment Share on other sites More sharing options...
Azaezel Posted December 1, 2019 Share Posted December 1, 2019 quickietest this end looks like it's still functional... though I generally don't use IE, so odd that wouldn't pop the system-registered preferred browser.. got any additional info? Quote Link to comment Share on other sites More sharing options...
Bloodknight Posted December 1, 2019 Share Posted December 1, 2019 I never use IE, but its still on my system because I don't clean out default installed junk, but still some places open IE vs default browser.gotowebpage() launches IE on my system for... reasons Quote Link to comment Share on other sites More sharing options...
Azaezel Posted December 1, 2019 Share Posted December 1, 2019 https://github.com/GarageGames/Torque3D/blob/5b8f316d804e4df2cf2b4748e5a64e6b44353204/Engine/source/platformWin32/winWindow.cpp#L528 will need to follow up on that..... looks correct, but...also seems linux lacks it entirely: https://github.com/GarageGames/Torque3D/blob/561f010f2e6411d8253d23f0cfcff794e81f60bf/Engine/source/platformX86UNIX/x86UNIXPlatform.cpp#L3 Quote Link to comment Share on other sites More sharing options...
Happenstance Posted December 1, 2019 Share Posted December 1, 2019 The code is correct Az (at least on Windows, poor Linux...) but if the registry key is missing for some reason it'll fail which sounds like what's happening in Hodo's case. There are some other registry keys we can check as well (the thread I linked lists those). Another potential alternative would be to call ShellExecute, something like: ShellExecute(NULL, "open", "website_URL_here", NULL, NULL, SW_SHOWNORMAL); Quote Link to comment Share on other sites More sharing options...
Azaezel Posted December 1, 2019 Share Posted December 1, 2019 first draft, go ahead and throw this at it, see if that covers it... bool Platform::openWebBrowser( const char* webAddress ) { //should handle unicode better here... int nRet = (int)ShellExecute(NULL, TEXT("open"), String(webAddress).utf16(), NULL, NULL, SW_SHOWNORMAL); if (nRet <= 32) { DWORD dw = GetLastError(); wchar_t szMsg[250]; FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0, dw, 0, szMsg, sizeof((const wchar_t*)szMsg), NULL); Con::errorf(ConsoleLogEntry::General, "Platform::openWebBrowser - Failed to open %s due to %s", webAddress, String(szMsg).c_str()); } return( true ); } seemed to this end. even popped my default browser, though given the flexibility of that... might (probably) need to cook up a more secure variation... Quote Link to comment Share on other sites More sharing options...
Hodo33 Posted December 4, 2019 Author Share Posted December 4, 2019 Thanks for the info. User refuses to use IE and that is the issue. Thanks all for response. Quote Link to comment Share on other sites More sharing options...
Azaezel Posted December 4, 2019 Share Posted December 4, 2019 well, like i said, this other popped chrome. so doable, just need to find time to root around and get the correct series of fallbacks for the keys to use so user preferred tries first.. Quote Link to comment Share on other sites More sharing options...
Nils Posted November 24, 2020 Share Posted November 24, 2020 Solution works fine for me. Thanks AzAdvised to add a fullscreen toggle when the canvas is full screen, for practical reasons Quote Link to comment Share on other sites More sharing options...
OTHGMars Posted December 15, 2020 Share Posted December 15, 2020 SDL will be adding SDL_OpenURL() in version 2.0.14. It's still pre-release, but it checks out on Win10 (opens url in default browser not IE). If it works on all supported platforms after the next SDL release, all of the platform specific openWebBrowser() calls can be eliminated and replaced with a single SDL call.https://hg.libsdl.org/SDL/rev/d0348dab7c0fSee line 3.45. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.