It is currently March 28th, 2024, 4:20 pm

[Help][Update: Solved!] Rainmeter Quote Skin Dual Mode Online and Offline

Get help with creating, editing & fixing problems with skins
Post Reply
ariefcfa
Posts: 18
Joined: October 7th, 2012, 3:37 pm

[Help][Update: Solved!] Rainmeter Quote Skin Dual Mode Online and Offline

Post by ariefcfa »


Update: Solved! using DynamicVariables. thanks


Dear Rainmeter Community,

Please help. I tried to modified a Rainmeter skin (it is a inspirational quote) made by someone and make it capable to work in offline mode (without internet).

The quotes database used in here is not owned by me. Download it from the internet but lost the link, so credit to the owner. (hours to regex it though, after (also) hours searching in stackexchange).

Much of the skin functionality is working, except for [MeasureCheckNetworkNew] , nothing happen. I don't know what is wrong.

Question:
  • Why when internet is connected the skin is not refreshing? update: solved! using DynamicVariables
  • Why the variable value won't change? update: fixed! thanks. see the post number#2 below
I struggled with this skin for days, including hours searching in Rainmeter forum to find the code (my code is from this community). I decide to ask here, to ease my next days. Any help is greatly appreciated.

Regards,
ariefcfa
---------
my system is:
Rainmeter version 4.0.0 r2746 64-bit (Jan 1 2017)
Windows 10 version 1709 64 bit

QuotePlus.ini

Code: Select all

[Rainmeter]
Author=Pepijn edited and improved by mahtpx120e
Update=1000
AccurateText=1

[Metadata]
Name=QuotePlus
Description=Displays a quote in the background, fetched from the internet (Offline capability is added by mahtpx120e)
Tags=Daily quote, internet, typography
License=Creative Commons Attribution-Non-Commercial-Share Alike 3.0

;End of added Metadata

;----------
;VARIABLES
;----------
[Variables]
WebUrlQuote=http://www.quotationspage.com/data/1mqotd.js
WebUrlQuoteTest=file:///G:\RmWebQuote.txt
Minutes=60
Hours=3600
UpdateQuoteHours=12
RecheckMinutes=30
NetworkLast=-1

;----------
;MEASURES
;----------
;start offline mode code::::::::::::::::::::::::::::::::::::::

[OfflineQuotation]
UpdateDivider=30
;UpdateDivider=(#Hours#*#UpdateQuoteHours#)
Measure=Plugin
Plugin=QuotePlugin
Separator=##
PathName=#CURRENTPATH#\RmQuoteData.txt
Substitute=" -- ":"#CRLF#- ",'."':'"'
IfMatch="#CRLF#- "
IfMatchAction=[!SetOption MeterOfflineQuote Postfix " -"][!UpdateMeter MeterOfflineQuote]
IfNotMatchAction=[!SetOption MeterOfflineQuote Postfix " "][!UpdateMeter MeterOfflineQuote]

;end of OFFLINE MODE code#####################################

;start online mode code:::::::::::::::::::::::::::::::::::::::

[OnlineQuotation]
UpdateRate=30
;UpdateRate=(#Hours#*#UpdateQuoteHours#)
Measure=WebParser
Url=#WebUrlQuoteTest#
RegExp=(?siU)(?(?=.*<dt class=\\'tqpQuote\\'>(.*).</dt>))(?(?=.*.com/quotes.*\">(.*)</a>))

[OnlineQuoteText]
UpdateRate=30
;UpdateRate=(#Hours#*#UpdateQuoteHours#)
Measure=WebParser
Url=[OnlineQuotation]
StringIndex=1
Substitute="\":"'","":"null"

[OnlineQuoteAuthor]
UpdateRate=30
;UpdateRate=(#Hours#*#UpdateQuoteHours#)
Measure=WebParser
Url=[OnlineQuotation]
StringIndex=2
Substitute="":"Unknown"

;end of ONLINE MODE code#######################################

;Decide which mode 

[MeasureCheckNetworkNew]
;[b][color=#FF0000]NOT WORKING :([/color][/b]
UpdateDivider=5
;UpdateDivider=(#Minutes#*30)
Measure=Plugin
Plugin=SysInfo
SysInfoType=INTERNET_CONNECTIVITY
IfCondition=MeasureCheckNetworkNew > #NetworkLast#
IfTrueAction=[!UpdateMeasure OnlineQuotation][!UpdateMeasure OnlineQuoteText][!UpdateMeasure OnlineQuoteAuthor][!UpdateMeasure MeasureDecide][!SetVariable NetworkLast [MeasureCheckNetworkNew]]
IfFalseAction=[!SetVariable NetworkLast [MeasureCheckNetworkNew]]

[MeasureDecide]
UpdateDivider=30
;UpdateDivider=(#Hours#*6)
Measure=String
String=[OnlineQuoteText]
Ifmatch="null"
IfMatchAction=[!Hidemeter MeterOnlineQuote][!Showmeter MeterOfflineQuote]
IfNotMatchAction=[!Hidemeter MeterOfflineQuote][!Showmeter MeterOnlineQuote]
DynamicVariables=1

[measuredummycount]
Measure=Calc
Formula=measuredummycount+1

;end of measures

;----------
;METERS
;----------
[meterdummycount]
METER=String
solidcolor=0,255,0,150
FontColor=255,255,255,225
measurename=measuredummycount
FontSize=20
X=#SCREENAREAWIDTH#
padding=15,15,15,15
StringAlign=Right
Text=Count %1

[meterdummynetwork]
METER=String
solidcolor=0,255,0,150
FontColor=255,255,255,225
measurename=MeasureCheckNetworkNew
FontSize=20
y=70r
X=#SCREENAREAWIDTH#
padding=15,15,15,15
StringAlign=Right
Text=NetNew %1#CRLF#NetLast #NetworkLast#

[MeterOnlineQuote]
;SolidColor=255,0,0,100
MeasureName=OnlineQuoteText
MeasureName2=OnlineQuoteAuthor
Text="%1"#CRLF#- %2 -
Meter=String
FontColor=255,255,255,225
FontFace=Calibri
FontSize=24
AntiAlias=1
StringAlign=RightCenter
ClipString=1
Padding=5,5,45,5
W=((#SCREENAREAWIDTH#/3)+100)
H=(#SCREENAREAHEIGHT#/2)
X=#SCREENAREAWIDTH#
Y=(#SCREENAREAHEIGHT#/2)
InlineSetting=Weight | 100
InlinePattern=.*#CRLF#- (.*)
InlineSetting2=Italic
InlinePattern2=.*#CRLF#- (.*)
InlineSetting3=Size | 18
InlinePattern3=.*#CRLF#- (.*)

[MeterOfflineQuote]
;SolidColor=0,0,255,100
MeasureName=OfflineQuotation
Text=%1
Meter=String
FontColor=255,255,255,225
FontFace=Calibri
FontSize=24
AntiAlias=1
StringAlign=RightCenter
ClipString=1
Padding=5,5,45,5
W=((#SCREENAREAWIDTH#/3)+100)
H=(#SCREENAREAHEIGHT#/2)
X=#SCREENAREAWIDTH#
Y=(#SCREENAREAHEIGHT#/2)
InlineSetting=Weight | 100
InlinePattern=.*#CRLF#- (.*)
InlineSetting2=Italic
InlinePattern2=.*#CRLF#- (.*)
InlineSetting3=Size | 18
InlinePattern3=.*#CRLF#- (.*)
Sample offline quotes database.txt
"Once a new technology starts rolling, if you're not part of the steamroller, you're part of the road." -- Stewart Brand##
"Good judgement comes from experience, and experience comes from bad judgement." -- Fred Brooks##
"Plan to throw one away, you will anyhow." -- Fred Brooks##
"C++ tries to guard against Murphy, not Machiavelli." -- Damian Conway##
"Style distinguishes excellence from accomplishment." -- James Coplien##
"Learning is not compulsory. Neither is survival." -- W. Edwards Deming##
"To iterate is human, to recurse divine." -- L. Peter Deutsch##
"Do not worry about your difficulties in mathematics. I can assure you that mine are still greater." -- Albert Einstein##
"Make everything as simple as possible, but not simpler." -- Albert Einstein##
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe." -- Albert Einstein##
"I have always found that plans are useless, but planning is indispensable." -- Dwight Eisenhower##
Last edited by ariefcfa on March 10th, 2018, 8:46 am, edited 4 times in total.
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: [Help]Rainmeter Quote Skin

Post by balala »

ariefcfa wrote:Much of the skin functionality is working, except for [MeasureCheckNetworkNew] , nothing happen. I don't know what is wrong.
Not sure what you mean by this. The [MeasureCheckNetworkNew] measure works perfectly. It does exactly what is should have to, returning 1 if the computer is connected and -1 if it's not connected to the internet. Then it sets the value of the NetworkLast variable accordingly.
But there is a small issue in your code. You don't see the change of the value of this variable, because a DynamicVariables=1 option is missing from the [meterdummynetwork] String meter. Add it and you'll see the change of the variable immediately.
ariefcfa wrote:Question:
  • Why when internet is connected the skin is not refreshing? Why the variable value won't change?
I think you have misunderstood the terms of Rainmeter: usually a skin doesn't have to refresh (itself), but to update. These aren't the same thing.
Another small issue: a WebParser measure can't be updated (to re-read the source from the internet) through a !UpdateMeasure bang. For such, a !CommandMeasure bang should have to be used. So replace the [!UpdateMeasure OnlineQuotation] bang of the IfTrueAction option of the [MeasureCheckNetworkNew] measure with the following one: [!CommandMeasure "OnlineQuotation" "Update"]. This bang will update the [OnlineQuotation] measure (and its child measures, [OnlineQuoteText] and [OnlineQuoteAuthor]).
ariefcfa
Posts: 18
Joined: October 7th, 2012, 3:37 pm

Re: [Help]Rainmeter Quote Skin

Post by ariefcfa »

Thanks a lot for your help, i get a new hope to fix the skin :)
balala wrote:Not sure what you mean by this. The [MeasureCheckNetworkNew] measure works perfectly. It does exactly what is should have to, returning 1 if the computer is connected and -1 if it's not connected to the internet
Yes! glad to see the value of the NetworkLast variable updated accordingly. :17good
balala wrote: Another small issue: a WebParser measure can't be updated (to re-read the source from the internet) through a !UpdateMeasure bang. For such, a !CommandMeasure bang should have to be used.
i edit the [MeasureCheckNetworkNew] as suggested, now it become:

Code: Select all

[MeasureCheckNetworkNew]
UpdateDivider=5
;UpdateDivider=(#Minutes#*30)
Measure=Plugin
Plugin=SysInfo
SysInfoType=INTERNET_CONNECTIVITY
IfCondition=MeasureCheckNetworkNew > #NetworkLast#
IfTrueAction=[!CommandMeasure "OnlineQuotation" "Update"][!UpdateMeasure MeasureDecide][!SetVariable NetworkLast [MeasureCheckNetworkNew]]
IfFalseAction=[!SetVariable NetworkLast [MeasureCheckNetworkNew]]

[MeasureDecide]
UpdateDivider=30
;UpdateDivider=(#Hours#*6)
Measure=String
String=[OnlineQuoteText]
Ifmatch="null"
IfMatchAction=[!Hidemeter MeterOnlineQuote][!Showmeter MeterOfflineQuote]
IfNotMatchAction=[!Hidemeter MeterOfflineQuote][!Showmeter MeterOnlineQuote]
DynamicVariables=1
Still, [MeasureCheckNetworkNew] is not fully working.

My plan is if the computer connect to the internet, the skin will do this sequence:
  1. Re-read the source from the internet (depend on the condition of NetworkLast)
  2. Trigger [MeasureDecide] to decide which Meter to display (online quote [MeterOnlineQuote]
    or offline quote [MeterOfflineQuote])
The skin is still displaying offline quote despite the computer is connected to the internet. It only change to online quote after [MeasureDecide] updatedivider (30 seconds) not immediately after the computer connect to the internet. How can i fix this?

I can't set !Hidemeter in [MeasureCheckNetworkNew] because if the internet source is null, it must display offline quote.
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: [Help]Rainmeter Quote Skin

Post by balala »

ariefcfa wrote:Still, [MeasureCheckNetworkNew] is not fully working.

My plan is if the computer connect to the internet, the skin will do this sequence:
  1. Re-read the source from the internet (depend on the condition of NetworkLast)
  2. Trigger [MeasureDecide] to decide which Meter to display (online quote [MeterOnlineQuote]
    or offline quote [MeterOfflineQuote])
The skin is still displaying offline quote despite the computer is connected to the internet. It only change to online quote after [MeasureDecide] updatedivider (30 seconds) not immediately after the computer connect to the internet. How can i fix this?

I can't set !Hidemeter in [MeasureCheckNetworkNew] because if the internet source is null, it must display offline quote.
I'd say the NetworkLast variable is useless. I'd remove it and would replace the IfCondition and IfTrueAction options of the [MeasureCheckNetworkNew] measure with the following ones:

Code: Select all

[MeasureCheckNetworkNew]
...
IfCondition=(MeasureCheckNetworkNew>0)
IfTrueAction=[!UpdateMeasure OnlineQuotation][!UpdateMeasure OnlineQuoteText][!UpdateMeasure OnlineQuoteAuthor][!UpdateMeasure MeasureDecide]
If you do so, the IfFalseAction option of the same [MeasureCheckNetworkNew] measure can be removed as well.
I'm saying this because the NetworkLast variable always gets the value retuned by the [MeasureCheckNetworkNew] measure. They being equals, the IfTrueAction is never executed.
On the other hand, the URL option of the [OnlineQuotation] I think is wrong. Probably you should have to use the Url=#WebUrlQuote# option, instead of the original Url=#WebUrlQuote[color=#FF0000]Test[/color]#. The WebUrlQuoteTest variable is the path of a file (which I don't have), while WebUrlQuote is a URL. With this modification, the WebParser measure starts to work, downloading the adequate string.

And one more: you should never have to use quotation marks around the options. Although it's not an error, the Ifmatch=[color=#FF0000]"[/color]null[color=#FF0000]"[/color] option of the [MeasureDecide] measure would be better to be used as Ifmatch=null. You can figure out why, here: https://forum.rainmeter.net/viewtopic.php?p=137628#p137628
ariefcfa
Posts: 18
Joined: October 7th, 2012, 3:37 pm

Re: [Help]Rainmeter Quote Skin

Post by ariefcfa »

balala wrote: I'd say the NetworkLast variable is useless. I'd remove it and would replace the IfCondition and IfTrueAction options of the [MeasureCheckNetworkNew] measure with the following ones:

Code: Select all

[MeasureCheckNetworkNew]
...
IfCondition=(MeasureCheckNetworkNew>0)
IfTrueAction=[!UpdateMeasure OnlineQuotation][!UpdateMeasure OnlineQuoteText][!UpdateMeasure OnlineQuoteAuthor][!UpdateMeasure MeasureDecide]
I though the a WebParser measure can't be updated through a !UpdateMeasure bang, as you said before. Do you mean it was [!CommandMeasure "OnlineQuotation" "Update"]? Sorry, i get confused.
balala wrote: If you do so, the IfFalseAction option of the same [MeasureCheckNetworkNew] measure can be removed as well.
I'm saying this because the NetworkLast variable always gets the value retuned by the [MeasureCheckNetworkNew] measure. They being equals, the IfTrueAction is never executed.
i still confused here, i still think NetworkLast is needed to prevent [MeasureCheckNetworkNew] taking over all the UpdateRate or UpdateDivider of any Measures affected by IfTrueAction. I plan to make it only re-read the source from the internet if it was not connected before. I think without NetworkLast the [MeasureCheckNetworkNew] will frequently check the internet source disregarding the scheduled time of [MeterOnlineQuotation]edit:
measure [OnlineQuotation]
and it's child measure [OnlineQuoteText] and measure [OnlineQuoteAuthor]. I don't really understand.
balala wrote:
On the other hand, the URL option of the [OnlineQuotation] I think is wrong. Probably you should have to use the Url=#WebUrlQuote# option, instead of the original Url=#WebUrlQuote[color=#FF0000]Test[/color]#. The WebUrlQuoteTest variable is the path of a file (which I don't have), while WebUrlQuote is a URL. With this modification, the WebParser measure starts to work, downloading the adequate string.
I try to not make any load to the internet server (WebUrlQuote). So, i simulate the server using a file in my flashdisk (WebUrlQuoteTest). The content of the file is the same as the internet server http://www.quotationspage.com/data/1mqotd.js
balala wrote:
And one more: you should never have to use quotation marks around the options. Although it's not an error, the Ifmatch=[color=#FF0000]"[/color]null[color=#FF0000]"[/color] option of the [MeasureDecide] measure would be better to be used as Ifmatch=null. You can figure out why, here: https://forum.rainmeter.net/viewtopic.php?p=137628#p137628
Yes, I follow your suggestion to make this skin coded appropriately, thanks.

I am sorry if making this skin so complex, Is it possible to make this skin work as follow:
  1. Offline Quote (read local file stored in PC) ->
  2. (if connected to the internet) immediately check and read internet source ->
  3. if it get "null" then keep working in Offline Mode ->
  4. periodically check the internet (when connected edit: even when disconnected) and change to Online Quote if it can "download" the html text edit: let the [MeasureDecide] make the decision->
  5. (If disconnected from the internet) back to Offline Quote when scheduled UpdateDivider of [OfflineQuotation] is arrived. (i just found that Rainmeter will get this error (Fetch error) The server name or address could not be resolved (ErrorCode=12007) (mahx120e\QuotePlus\QuotePlus.ini - [OnlineQuotation]) if it can't reach the url. So my skin will stuck to online quote [MeterOnlineQuote] unless i do Refresh skin manually. So this step maybe is impossible)
  6. Repeat
It's around 4.58 a.m. here at the time i start writing this (now it is 6.05 a.m). I can't think clearly right now, need to sleep. Will update this thread later. Please stay helping me to fix this skin :)
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: [Help]Rainmeter Quote Skin

Post by balala »

ariefcfa wrote:I though the a WebParser measure can't be updated through a !UpdateMeasure bang, as you said before. Do you mean it was [!CommandMeasure "OnlineQuotation" "Update"]? Sorry, i get confused.
Yeah, you're perfectly right, my mistake. When I posted my reply, I copied the code from your initial post and didn't modify it. The !UpdateMeasure bang can't be used to make the WebParser measure to re-read the information, for a such thing, you have to use the !CommandMeasure. So, the mentioned options of the [MeasureCheckNetworkNew] measure should have to be modified accordingly:

Code: Select all

[MeasureCheckNetworkNew]
...
IfCondition=(MeasureCheckNetworkNew>0)
IfTrueAction=[!CommandMeasure "OnlineQuotation" "Update"][!UpdateMeasure "OnlineQuoteText"][!UpdateMeasure "OnlineQuoteAuthor"][!UpdateMeasure "MeasureDecide"]
But with this modification, what I've wrote is still valid.
Sorry for this mistake and lack of attention.
ariefcfa wrote:i still confused here, i still think NetworkLast is needed to prevent [MeasureCheckNetworkNew] taking over all the UpdateRate or UpdateDivider of any Measures affected by IfTrueAction. I plan to make it only re-read the source from the internet if it was not connected before. I think without NetworkLast the [MeasureCheckNetworkNew] will frequently check the internet source disregarding the scheduled time of [MeterOnlineQuotation]edit:
measure [OnlineQuotation]
and it's child measure [OnlineQuoteText] and measure [OnlineQuoteAuthor]. I don't really understand.
Well, I don't entirely understand the logic of the whole skin, but I have to say that definitely if you set the value of the NetworkLast variable as you did, the IfTrueAction option of the [MeasureCheckNetworkNew] measure is never executed.
ariefcfa wrote:I try to not make any load to the internet server (WebUrlQuote). So, i simulate the server using a file in my flashdisk (WebUrlQuoteTest). The content of the file is the same as the internet server http://www.quotationspage.com/data/1mqotd.js
If it is, then it's ok. I don't have the RmWebQuote.txt file, so couldn't check, just saw the (I thought) inadvertence in the option and posted my opinion.

For the other requests, I think I'd need the used files, too. So, please pack the whole config you have so far and upload it. I'd like to take a look to the entire project.
ariefcfa
Posts: 18
Joined: October 7th, 2012, 3:37 pm

Re: [Help]Rainmeter Quote Skin

Post by ariefcfa »

balala wrote:

Code: Select all

[MeasureCheckNetworkNew]
...
IfCondition=(MeasureCheckNetworkNew>0)
IfTrueAction=[!CommandMeasure "OnlineQuotation" "Update"][!UpdateMeasure "OnlineQuoteText"][!UpdateMeasure "OnlineQuoteAuthor"][!UpdateMeasure "MeasureDecide"]
But with this modification, what I've wrote is still valid.
Sorry for this mistake and lack of attention.
Isn't that code will make [MeasureCheckNetworkNew] read the source from the internet when my PC connected to the internet? I mean, i set UpdateDivider for [MeasureCheckNetworkNew] every 30 minutes, and UpdateRate for measure [OnlineQuotation], [OnlineQuoteText], [OnlineQuoteAuthor][ for every 12 hours. So, i think without NetworkLast the scheduled UpdateRate has no fuction. I don't know why, my logic is not reliable for sure :confused:
balala wrote: Well, I don't entirely understand the logic of the whole skin, but I have to say that definitely if you set the value of the NetworkLast variable as you did, the IfTrueAction option of the [MeasureCheckNetworkNew] measure is never executed.
I don't know what happened, but actually IfTrueAction for [MeasureCheckNetworkNew] is executed. The NetworkLast actually has it function in the code. I tested it several times, the result is when i get connected to internet (from "offline"), IfTrueAction is executed. While is still connect to the internet the IfTrueAction never executed. This behavior is exactly as the plan.

Actually i am at 90% complete at this skin (i guess i arrived at a weird lazy zone in project management). Almost all expected behavior is working. I dirtily put any code and see how it work, eventually i arrived at this working skin. Not perfect, because i see the [OnlineQuotation] not immediately displayed to desktop, need to wait until next cycle UpdateDivider of [MeasureDecide].

Oh, by the way while working on this project i found a workaround to anticipate WebParser stuck on it old value. The trick is to use a dummy file stored in PC, and using variable URL for the WebParser but this cost a use of DynamicVariables which is not recommended afaik, because use more cpu power.

Attached is all the file used in this project. As I said, my method is copy-paste the code from internet and see how it work. Hope this skin get a code review, to make this skin run efficiently. Thanks
Attachments
QuotePlus.zip
Project Files
(191.08 KiB) Downloaded 23 times
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: [Help]Rainmeter Quote Skin Dual Mode Online and Offline

Post by balala »

ariefcfa wrote:[MeasureCheckNetworkNew]
Am I missing something? There isn't even such a measure in your code. I think it should have to be [MeasureCheckNetworkConnect], isn't it?
ariefcfa wrote:I don't know what happened, but actually IfTrueAction for [MeasureCheckNetworkNew] is executed. The NetworkLast actually has it function in the code. I tested it several times, the result is when i get connected to internet (from "offline"), IfTrueAction is executed. While is still connect to the internet the IfTrueAction never executed. This behavior is exactly as the plan.
Yeah, it does executes the IfTrueAction, but this just because that you've forgot to add a DynamicVariables=1 option to the [MeasureCheckNetworkConnect] measure. A such option is needed because the value of the NetworkLast variable is set dynamically (through the !SetVariable bang), but a measure (meter) can't use these kind of values without this option. In such cases the initial value of the variable is used, which in this case is -1. So when the computer is connected to internet, the condition still compares the value of the [MeasureCheckNetworkConnect] measure with -1, not with the new value of the variable, which in the meantime became 1. If you add the DynamicVariables=1 option, you can see the IfTrueAction is never executed (or more precisely it is for an update cycle of the measure, so for up to 5 seconds - after the measure is updated, the condition become false).

And one more: I think you should have to fix the TrueURL variable. Instead of the original TrueURL=file:///G:\SimulateWebQuote.txt, you should have to use TrueURL=file://#CURRENTPATH#SimulateWebQuote.txt, I think, unless you have the same SimulateWebQuote.txt file on the G: drive as well.
ariefcfa
Posts: 18
Joined: October 7th, 2012, 3:37 pm

Re: [Help]Rainmeter Quote Skin Dual Mode Online and Offline

Post by ariefcfa »

balala wrote:Am I missing something? There isn't even such a measure in your code. I think it should have to be [MeasureCheckNetworkConnect], isn't it?
Correct. i changed the measure name in the last work. my bad

Thank you very much for helping me, and willing to explain how DynamicVariable work, i got it now. Salute.

Alright i will do the finishing job to this project, add missing dynamic variables, and posting it on DevianArt.

Mark this thread as solved. Thanks a ton :)
User avatar
balala
Rainmeter Sage
Posts: 16110
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: [Help]Rainmeter Quote Skin Dual Mode Online and Offline

Post by balala »

You're welcome. I'm glad if I helped.
Post Reply