My DX weather widgets stopped working. This has happened before in years past. I don't know of a solution.
Hello,
Sorry to hear you are having issues.
Desktop X is a discontinued app and wasn't supported
in Windows 8 or 10 , and not supported anymore.
I'm running win10 so can't check it
maybe someone can chime in running Win7 who might
can help .
What version of windows are you running ?
AzDudeStardock Community Assistant
JcRabbit of Winstep reported "Yahoo also made changes to their weather feed at the end of January that broke existing applications/websites using it." I don't know if DX uses Yahoo, but I just thought I'd throw that out there.
Confirmed. Weather worked last week, now isn't working on Windows 10.
Yes, Mike. DesktopX isn't supported on 10, but it does work, and the weather was working a week ago.
Chuck, it isn't a Stardock thing, the weather feed has either been killed, or changed, by the weather feed supplier.
Thanks Jim. I figured that because it's happened before.
Just when I started getting back into doing those widgets again in DX!
There's always DX media players, etc...
For the record, I have found one weather gadget that still works!
https://www.wincustomize.com/explore/desktop_gadgets/45/
I figured someone would want to know. I'd make some built on the scripting for this, but it is a gadget and therefore I can't reverse engineer it.
I may try to reach the author, but I doubt being successful.
This is because The Weather Channel has changed the rules for accessing their RSS feeds. But no one here did anything to solve this little problem... Why? Because this task requires your desire and some efforts. If there is neither one nor the other, the widgets will never work...
So here is a solution:
Replace the TWC url in your script with one of these two lines:
"http://wxdata.weather.com/wxdata/weather/local/" & "ZIPCODE" & "QUERY"
"http://xml.weather.com/weather/local/" & "ZIPCODE" & "QUERY"
Where ZIPCODE is as a code of your location (for example for Minnesota, Eagle Bend that value is USMN0215) and the QUERY is something like this:
"?cc=*&dayf=10&unit=S" for 10 days forecast
or
"?hbhf=48&unit=S" for hourly forecast.
Finally, the right query string should look something like this::
"http://wxdata.weather.com/wxdata/weather/local/" & "USMN0215" & "?cc=*&dayf=5&unit=S"
"http://xml.weather.com/weather/local/" & "USMN0215" & "?hbhf=48&unit=S"
After these simple changes, any "dead" widget will come to life and begin to work as it should.
Thanks Vad_M. I don't have DesktopX installed on this machine. Over the weekend I'll install and play with this.
By the way, I heard here that DesktopX does not work on Windows 10. I'm not sure about DX Themes (I never used them), but it still works fine for developing widgets / gadgets without any problems.
I'm on Windows 10 1803, 64 bit. DesktopX Installer: file name DesktopXPro_3.50_setup.exe, file version 9.1.1.0 (created with Setup Factory), DesktopX Builder version 3.5 (not 3.9, and even more so 4.0, which is a crap).
It was a great program, and I'm really sorry that Stardock stopped supporting it... So now I have to use Visual Studio for the same things.
I do use the unreleased 4.0 Pro. I have tried 3.5 and nothing scripted will run.
Hi Jim,
Where did you get this installer? Can you post more details?
I've tried to install DesktopX_Pro_setup.exe (the file version is 9.0.2.0, SHA1 timestamp: 12 June 2011, 23:31:41) several years ago, but it was buggy...
By the way the SHA1 timestamp of my DesktopXPro_3.50_setup.exe is 13 November 2013, 19:20:12. So, this installer was created much later than the previous one (which showed the version of installed DesktopX - 4.0).
Thank you. I understood why DX 4.0 that I was trying to use did not work...
I can't get this fix to work, I must be doing something wrong.
No problem! Please, post here the part of your code where the URL is used. I will fix it in a few minutes.
Function Object_OnLButtonUp(x,y,dragged)If dragged = False Thenx = DesktopX.ScriptObject("weather_image").locationIf IsNumeric(x) = False Then x = Object.Textx = InputBox("Please enter the zip code or location that you would like to display the weather for:" & vbNewLine & "e.g. 48152 or York,England", "Select location ...", x)If IsNumeric(x) = False ThenSet http = CreateObject("Microsoft.XmlHttp")Randomizestr_RANDOM_URL="&rnd=" & rnd()http.Open "GET", "http://xml.weather.com/search/search?where=" & x, Falsehttp.send ""' Store data in a stringweatherdata = http.responseTextIf InStr(weatherdata, "loc id") > 0 Thenweatherdata = Right(weatherdata, Len(weatherdata) - InStr(weatherdata, "loc id") - 7)weatherdata = Left(weatherdata, InStr(weatherdata, "type") - 3)x = weatherdataEnd IfEnd IfIf x <> "" ThenDesktopX.ScriptObject("weather_image").location = xDesktopX.ScriptObject("weather_image").Object_OnTimer6001End IfEnd IfEnd Function
Thank you, but it's night around me so I'll fix this Function Tomorrow.
It seems to me that this is one of the first Functions created by Martin many years ago... This function requires an unambiguous spelling of City Name. That is, you must enter “New York, NY” to receive the correct data. Otherwise, if you just enter "New York", you will see 10 different places around the World... I don’t like this...
Naturally, my previous advice was incorrect, because it implied a different method to receive the weather data. So your fix here:
You need change the string:
"http://xml.weather.com/search/search?where=" & x, False
to:
"http://wxdata.weather.com/wxdata/search/search?where=" & x, False
So the working function should be:
Function Object_OnLButtonUp(x,y,dragged)If dragged = False Thenx = DesktopX.ScriptObject("weather_image").locationIf IsNumeric(x) = False Then x = Object.Textx = InputBox("Please enter the zip code or location that you would like to display the weather for:" & vbNewLine & "e.g. 48152 or York,England", "Select location ...", x)If IsNumeric(x) = False ThenSet http = CreateObject("Microsoft.XmlHttp")Randomizestr_RANDOM_URL="&rnd=" & rnd()http.Open "GET", "http://wxdata.weather.com/wxdata/search/search?where=" & x, Falsehttp.send ""' Store data in a stringweatherdata = http.responseTextIf InStr(weatherdata, "loc id") > 0 Thenweatherdata = Right(weatherdata, Len(weatherdata) - InStr(weatherdata, "loc id") - 7)weatherdata = Left(weatherdata, InStr(weatherdata, "type") - 3)x = weatherdataEnd IfEnd IfIf x <> "" ThenDesktopX.ScriptObject("weather_image").location = xDesktopX.ScriptObject("weather_image").Object_OnTimer6001End IfEnd IfEnd Function
By the way, you can easily check how this works before applying the fix to your code. Just open a new tab in your browser and paste something like this to the address field:
http://wxdata.weather.com/wxdata/search/search?where=New York, NY
Then press Enter and you will see the result.
Have a nice Day!
P.S. If your widget still does not work, change the URL inside the
DesktopX.ScriptObject ("weather_image")
to one of my previous post. I think you will find the right place here:
Sub Object_OnTimer6001.
Aaaarrgghhh. I'm no scriptor. Still can't get it to work.
I'd rather use one of my own weather widgets, but they crash on load. May I send you one of mine to fix, and I can take it from there to fix others?
Yes of course! You may send it. Or just give me a link to the gallery of your widgets, and I will download it myself. Today I already tried to download and check a few pieces, but they all work through Weather Underground. So I couldn’t find at least one working with TWC.
Don't worry. Anyway your widgets will work.
Vad.
P.S. Widgets crash on load due to fatal errors in their scripts. Just close DesktopX, turn off the Internet before opening the buggy widget, and it will open without crashing.
https://www.wincustomize.com/explore/desktopx_widgets/2384/
There's one. If you fix it, I can fix the rest. Thanks.
There are many great features available to you once you register, including:
Sign in or Create Account