If I understand you correctly, something like this might work for you:
Code: Select all
[Rainmeter]
Update=1000
[Variables]
1Name="Programs"
2Name="Programs x86"
3Name="Documents"
4Name="Skins"
5Name="Rainmeter"
6Name="Control Panel"
7Name="Network"
8Name="Calculator"
1Path=""C:\Program Files""
2Path=""C:\Program Files (x86)""
3Path="C:\Users\Jeffrey\Documents"
4Path="C:\Users\Jeffrey\Documents\Rainmeter\Skins"
5Path=""C:\Program Files\Rainmeter""
6Path="Shell:::{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}"
7Path="Shell:::{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}"
8Path="C:\Windows\System32\calc.exe"
[MeterLeft]
Meter=Image
X=0
Y=0
W=20
H=20
SolidColor=173,240,176,255
LeftMouseUpAction=[!SetOption MeasureCurrent Formula ([MeasureCurrent]-1)][!UpdateMeasure *]
DynamicVariables=1
[MeterRight]
Meter=Image
X=30
Y=0
W=20
H=20
SolidColor=173,215,240,255
LeftMouseUpAction=[!SetOption MeasureCurrent Formula ([MeasureCurrent]+1)][!UpdateMeasure *]
DynamicVariables=1
[MeasureCurrent]
Measure=Calc
Formula=1
IfBelowValue=1
IfBelowAction=[!SetOption MeasureCurrent Formula 8][!UpdateMeasure *][!UpdateMeter *][!Redraw]
IfAboveValue=8
IfAboveAction=[!SetOption MeasureCurrent Formula 1][!UpdateMeasure *][!UpdateMeter *][!Redraw]
OnUpdateAction=[!SetOption MeterCurrent Text "#[MeasureCurrent]Name#"][!SetOption MeterCurrent LeftMouseUpAction "[#[MeasureCurrent]Path#]"][!UpdateMeter *][!Redraw]
UpdateDivider=-1
[MeterCurrent]
Meter=String
X=10R
Y=2
FontSize=13
FontColor=255,255,255,255
SolidColor=0,0,0,1
AntiAlias=1
Text=#1Name#
LeftMouseUpAction=[#1Path#]
What I am doing is setting variables for the 8 "names" and "paths". NOTICE that paths that require quotes around them in Windows due to spaces in the folder names have TWO quotes around them. Rainmeter will strip off one of the sets of quotes when it uses the variable, but leave the second. Paths that don't have spaces in them, or ones like the shell command for Control Panel that don't need (and will hate) quotes, just have one set of quotes.
http://docs.rainmeter.net/tips/launching-windows-special-folders
Now the "Left" and "Right" meters increment the formula in a Calc measure, much as you were doing. IFActions are used to reset the "current" value if it falls below 1 or above 8. This means you can scroll through the numbers going either way (left or right) in a loop.
I update the Calc measure manually with [!UpdateMeasure *] when you click one of the left or right meters, so the measure can be set with UpdateDivider=-1. That way it just sits there quietly using no resources unless you are actually clicking.
So when that Calc measure is updated the OnUpdateAction sets the Text option of the string meter to the variable #xName#, where "x" is the current value of the measure. It then sets the LeftMouseUpAction of the string meter to the variable #xPath#, where "x" is again the current value of the measure. Those #xName# and #xPath# variables are obviously the ones we set at the top, so voila!
All done with one meter to display the item to launch and react to the mouse click. No need for eight meters and some complicated "hide / show" strategy.
Doubling back a bit, the reason for the double sets of quotes around the variable paths that have spaces in them (and thus will require quotes in Windows) is so we can use that one vanilla LeftMouseUpAction=[#xPath#] (again where "x" is the current value of the Calc measure) without having to actually put quotes on the bang in the LeftMouseUpAction= option itself. That would just cause issues when Windows DIDN'T want quotes.
Try this out, and see if some approach like this can't be modified to fit your needs.
P.S. Nothing says you have to do this with a String meter. The #xName# variables could just was well be #xImage# variables, set like
1Image="#@#Images\FirstImage.png" and then just use an Image meter and instead of using !SetOption on the Text= option, just set the ImageName= option on the Image meter instead.