It is currently March 28th, 2024, 11:44 pm

NomFerp Plugin

Share and get help with Plugins and Addons
DoTheEvo
Posts: 3
Joined: January 14th, 2016, 6:21 pm

Re: New PerfMon Plugin

Post by DoTheEvo »

Awesome! Thanks
User avatar
Dreossk
Posts: 18
Joined: November 12th, 2015, 7:21 pm

Re: New PerfMon Plugin

Post by Dreossk »

As said on the previous page, the problem with that code is that it uses perfmon which doesn't work the same way on every computer so the code doesn't work.
User avatar
fred_gaou
Posts: 60
Joined: July 30th, 2014, 1:00 am

Re: New PerfMon Plugin

Post by fred_gaou »

Yincognito wrote:Ailia, if you're still watching this, I (and not only me) have a problem with the functioning of your plugin. I've been trying for several days along with another skin designer here to debug an issue in my MyiniMeter skin suite here, issue related to the Processes skin that uses your NomFerp plugin.

Long story short, it's about localized (aka non-English) operating systems like French Windows 8.1 or Windows 7, where your plugin does not produce the desired results (e.g. no values at all). As I already discussed with Biohazardry on this topic, I did use the local French names for the queried counters. While this seemed to work on a pure French Windows XP (French counter names) and also on my English Windows 7 "updated" with a French language pack (where it worked using English counter names), this failed on the French version of Windows 7 and Windows 8.1 (x64). No language really worked there.

Both sephirotess (the other skin designer) and me have been getting this kind of messages in the Rainmeter's log:

Dictionary Key Error NomFerp.jpg

It took a while to test on different operating systems and notice when and where the issues popped up and sephirotess was also eager to make it work, as he was looking for a viable replacement for the old and buggy TopProcesses plugin (so he's a potential user for you). Unfortunately, due to the problem and the fact that he needs the plugin/skin/code to work on French systems, he couldn't really use your work.

Our tests concluded that the root of the problem are not the actual systems (almost all of them being cleanly installed on virtual machines), but some glitch regarding the functioning of your plugin. Due to the type of message that popped up in the Rainmeter log, I googled a little bit and I suspect the problem has to do with this. It's just a guess, but if your code is in C# and you're using dictionaries to sort the values, the Unicode issue presented there could be the cause of the issue in your plugin too. That's all I could do in trying to "narrow"/isolate the root of the problem.

Having said that, all we have are mostly suppositions, as your plugin code is not available to check it out (I know a little C# and coded in other languages as well, so at least for isolating the problem I think I can make a mostly correct assumption). That's why I finally decided to write you a message on this, only after making sure that the other possible causes have been reasonably eliminated. Nevertheless, I would kindly ask you to look at it, at least, as you are the one who could really tell if we are right and then point out to possible workarounds (if any) or hopefully, updating the "suspect" area in your plugin code (if your plugin is indeed causing this, that is).

The system where I finally been able to reproduce sephirotess' problem is available for download here. Don't worry, it has no illegal stuff included, lol.

Please take a look at it, ailia, and let us know what you think of it. I'll be glad to provide additional information about our "testing", if required.

Thank you.
Still the same issue on French win 8.1. Please, do french people succeed to make it work?

Is there an alternative to get the 5 top RAM processes?

I'm still astonished that rainmeter can't do that with a built-in plugin after all these years, an AdvancedCPU equivalent for all other counters.
  • Rainmeter 4.3.1.3321 64-bit (Sep 22 2019) - French (1036)
  • Windows 10 Pro 1909 64-bit (build 18363) - French (1036)
  • Path: D:\Programmes\Customisation\Rainmeter\
  • SkinPath: D:\Programmes\Customisation\Rainmeter\Skins\
  • SettingsPath: D:\Programmes\Customisation\Rainmeter\
  • IniFile: D:\Programmes\Customisation\Rainmeter\Rainmeter.ini
User avatar
Kolano
Posts: 24
Joined: October 23rd, 2015, 11:54 pm

Re: New PerfMon Plugin

Post by Kolano »

This plugin hasn't worked for me even on the English version of Windows 10 for some time. It once worked for me, but ceased doing so many months ago and I haven't been able to work out how to rectify the situation. The example skin, all others in this thread, and two of my own skins output 0's for all the nomperf measures.
User avatar
Yincognito
Rainmeter Sage
Posts: 7029
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: New PerfMon Plugin

Post by Yincognito »

Kolano wrote:This plugin hasn't worked for me even on the English version of Windows 10 for some time. It once worked for me, but ceased doing so many months ago and I haven't been able to work out how to rectify the situation. The example skin, all others in this thread, and two of my own skins output 0's for all the nomperf measures.
Maybe some Win 10 update (or perhaps some Visual C++ updates) broke it - assuming it once worked on your Win 10, that is. I did experience some minor problems regarding VC++ updates and some other plugin, so it might be worth checking out whether or not this is the culprit.

For me, it works, but then ... I'm still on Win 7, and didn't do many system changes lately. Anyway, as far as I remember, I had no problems on the English version of Win 10. Logically, I don't see why it would stop working, after it once did. Also, you might wanna try that Performance Counters reset fix that is posted here - maybe that helps.
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
CoffeeKid
Posts: 3
Joined: July 31st, 2014, 10:20 pm

Re: New PerfMon Plugin

Post by CoffeeKid »

I have two skins that are direct rips of jsmorley's top cpu/mem example provided in this thread. Of the two my top mem/cpu is sometimes showing all zeros while the other one keeps on truckin'.

Image

Looking at the RM log it says '% Processor Time is not a valid performance counter name'.
Image

When I refresh the one or all skins it starts running again with no problems for a while. Also there is no additional RM error on the log. That is until sometime in the future it stops again. Same skin, same reason.

Image

Here is the skin details:

Code: Select all

;============================================================================
; Config
;============================================================================

[Rainmeter]
Update=1000
AccurateText=1
@include=#ROOTCONFIGPATH#\Rainmeter.inc

[Variables]
@include=#ROOTCONFIGPATH#\Config.inc
WIDTH=275
HEIGHT=95
Filter="_Total|Idle|System|svchost"
;Filter="_Total|Idle|svchost|System|lsass|dwm|wmpnetwk|csrss"

;============================================================================
; Layout
;============================================================================

[SystemMonitorHighlightTop]
Meter=IMAGE
X=1
Y=0
W=(#WIDTH# - 1)
H=1
SolidColor=#colour4#
UpdateDivider=3600

[SystemMonitorHighlightRight]
Meter=IMAGE
X=#WIDTH#
Y=0
W=1
H=(#HEIGHT# + 1)
SolidColor=#colour4#
UpdateDivider=3600

[SystemMonitorShadowBottom]
Meter=IMAGE
X=0
Y=#HEIGHT#
W=#WIDTH#
H=1
SolidColor=#colour5#
UpdateDivider=3600

[SystemMonitorShadowLeft]
Meter=IMAGE
X=0
Y=0
W=1
H=#HEIGHT#
SolidColor=#colour5#
UpdateDivider=3600

[SystemMonitorBodySideBar]
Meter=IMAGE
SolidColor=#colour2#
X=1
Y=1
H=(#HEIGHT# - 1)
W=24
UpdateDivider=3600

[SystemMonitorBodySideBarSeparator]
Meter=IMAGE
SolidColor=#colour3#
X=25
Y=1
H=(#HEIGHT# - 1)
W=1
UpdateDivider=3600

[SystemMonitorBody]
Meter=IMAGE
X=26
Y=1
W=(#WIDTH# - 26)
H=(#HEIGHT# - 1)
SolidColor=#colour1#
UpdateDivider=3600

[SystemMonitorVertivalText]
Meter=String
Text="Top Mem"
X=3
Y=82
Angle=-1.5707
StringStyle=Bold
FontFace="hooge 05_53"
FontColor=#font2_colour#
FontSize=8
AntiAlias=#AA#
UpdateDivider=3600

[SystemMonitorIcon]
Meter=IMAGE
Path=#@#Icons
ImageName=lightning.png
LeftMouseUpAction=[perfmon.exe /res]
ToolTipText="Open Resource Monitor"
X=5
Y=5
Greyscale=1
ImageTint=#icon1#
UpdateDivider=3600


;============================================================================
;Measure
;============================================================================

[TopMem]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
Order=Working Set - Private
Filter=#Filter#
UpdateDivider=2

; =====================
; Instance 1
; =====================

[TopName1]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=name
Instance=1
RegExpSubstitute=1
Substitute="(?siU)(.*)#.*$":"\1"

[TopCPU1]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=% Processor Time
Mode=DifferenceTotalPercent
Instance=1

[TopMem1]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=Working Set - Private
Mode=Normal
Instance=1

; =====================
; Instance 2
; =====================

[TopName2]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=name
Instance=2
RegExpSubstitute=1
Substitute="(?siU)(.*)#.*$":"\1"

[TopCPU2]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=% Processor Time
Mode=DifferenceTotalPercent
Instance=2

[TopMem2]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=Working Set - Private
Mode=Normal
Instance=2

; =====================
; Instance 3
; =====================

[TopName3]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=name
Instance=3
RegExpSubstitute=1
Substitute="(?siU)(.*)#.*$":"\1"

[TopCPU3]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=% Processor Time
Mode=DifferenceTotalPercent
Instance=3

[TopMem3]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=Working Set - Private
Mode=Normal
Instance=3

; =====================
; Instance 4
; =====================

[TopName4]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=name
Instance=4
RegExpSubstitute=1
Substitute="(?siU)(.*)#.*$":"\1"

[TopCPU4]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=% Processor Time
Mode=DifferenceTotalPercent
Instance=4

[TopMem4]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=Working Set - Private
Mode=Normal
Instance=4

; =====================
; Instance 5
; =====================

[TopName5]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=name
Instance=5
RegExpSubstitute=1
Substitute="(?siU)(.*)#.*$":"\1"

[TopCPU5]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=% Processor Time
Mode=DifferenceTotalPercent
Instance=5

[TopMem5]
Measure=Plugin
Plugin=Plugins\NomFerp.dll
ParentName=TopMem
Counter=Working Set - Private
Mode=Normal
Instance=5

; =====================
; Meters Top Row
; =====================

[MeterTopProcessLabel1]
Meter=String
Text="Process"
X=45
Y=0r
FontFace=#font1_name#
FontColor=#font1_colour#
FontSize=8
StringStyle=Bold
StringAlign=Left
AntiAlias=#AA#
AutoScale=0
UpdateDivider=3600

[MeterTopProcessLabe2]
Meter=String
Text="Memory"
X=156
Y=0r
FontFace=#font1_name#
FontColor=#font1_colour#
FontSize=8
StringStyle=Bold
StringAlign=Left
AntiAlias=#AA#
AutoScale=0
UpdateDivider=3600

[MeterTopProcessLabe3]
Meter=String
Text="CPU"
X=265
Y=0r
FontFace=#font1_name#
FontColor=#font1_colour#
FontSize=8
StringStyle=Bold
StringAlign=Right
AntiAlias=#AA#
AutoScale=0
UpdateDivider=3600

; =====================
; Meters Details
; =====================

[MeterTopProcess]
Meter=String
MeasureName=MeasureTopMemory
X=45
Y=5r
FontFace=#font1_name#
FontColor=#font1_colour#
FontSize=8
ClipString=1
StringAlign=Left
AntiAlias=#AA#
AutoScale=0
UpdateDivider=3




[MeterTopName1]
Meter=String
MeasureName=TopName1
X=45
Y=10R
W=90
ClipString=1
FontSize=8
FontColor=252,124,124,255
SolidColor=0,0,0,1
StringCase=Proper
AntiAlias=1

[MeterTopMem1]
Meter=String
MeasureName=TopMem1
X=200
Y=0r
StringAlign=Right
FontSize=8
FontColor=252,124,124,255
SolidColor=0,0,0,1
NumOfDecimals=1
AutoScale=1
AntiAlias=1
Text=%1B

[MeterTopCPU1]
Meter=String
MeasureName=TopCPU1
X=265
Y=0r
StringAlign=Right
FontSize=8
FontColor=252,124,124,255
SolidColor=0,0,0,1
NumOfDecimals=2
AntiAlias=1
Text=%1%

[MeterTopName2]
Meter=String
MeasureName=TopName2
X=45
Y=2R
W=90
ClipString=1
FontSize=8
FontFace=#font1_name#
FontColor=#font1_colour#
SolidColor=0,0,0,1
StringCase=Proper
AntiAlias=1

[MeterTopMem2]
Meter=String
MeasureName=TopMem2
X=200
Y=0r
StringAlign=Right
FontSize=8
FontFace=#font1_name#
FontColor=#font1_colour#
SolidColor=0,0,0,1
NumOfDecimals=1
AutoScale=1
AntiAlias=1
Text=%1B

[MeterTopCPU2]
Meter=String
MeasureName=TopCPU2
X=265
Y=0r
StringAlign=Right
FontSize=8
FontFace=#font1_name#
FontColor=#font1_colour#
SolidColor=0,0,0,1
NumOfDecimals=2
AntiAlias=1
Text=%1%

[MeterTopName3]
Meter=String
MeasureName=TopName3
X=45
Y=2R
W=90
ClipString=1
FontSize=8
FontFace=#font1_name#
FontColor=#font1_colour#
SolidColor=0,0,0,1
StringCase=Proper
AntiAlias=1

[MeterTopMem3]
Meter=String
MeasureName=TopMem3
X=200
Y=0r
StringAlign=Right
FontSize=8
FontFace=#font1_name#
FontColor=#font1_colour#
SolidColor=0,0,0,1
NumOfDecimals=1
AutoScale=1
AntiAlias=1
Text=%1B

[MeterTopCPU3]
Meter=String
MeasureName=TopCPU3
X=265
Y=0r
StringAlign=Right
FontSize=8
FontFace=#font1_name#
FontColor=#font1_colour#
SolidColor=0,0,0,1
NumOfDecimals=2
AntiAlias=1
Text=%1%

[MeterTopName4]
Meter=String
MeasureName=TopName4
X=45
Y=2R
W=90
ClipString=1
FontSize=8
FontFace=#font1_name#
FontColor=#font1_colour#
SolidColor=0,0,0,1
StringCase=Proper
AntiAlias=1

[MeterTopMem4]
Meter=String
MeasureName=TopMem4
X=200
Y=0r
StringAlign=Right
FontSize=8
FontFace=#font1_name#
FontColor=#font1_colour#
SolidColor=0,0,0,1
NumOfDecimals=1
AutoScale=1
AntiAlias=1
Text=%1B

[MeterTopCPU4]
Meter=String
MeasureName=TopCPU4
X=265
Y=0r
StringAlign=Right
FontSize=8
FontFace=#font1_name#
FontColor=#font1_colour#
SolidColor=0,0,0,1
NumOfDecimals=2
AntiAlias=1
Text=%1%

[MeterTopName5]
Meter=String
MeasureName=TopName5
X=45
Y=2R
W=90
ClipString=1
FontSize=8
FontFace=#font1_name#
FontColor=#font1_colour#
SolidColor=0,0,0,1
StringCase=Proper
AntiAlias=1

[MeterTopMem5]
Meter=String
MeasureName=TopMem5
X=200
Y=0r
StringAlign=Right
FontSize=8
FontFace=#font1_name#
FontColor=#font1_colour#
SolidColor=0,0,0,1
NumOfDecimals=1
AutoScale=1
AntiAlias=1
Text=%1B

[MeterTopCPU5]
Meter=String
MeasureName=TopCPU5
X=265
Y=0r
StringAlign=Right
FontSize=8
FontFace=#font1_name#
FontColor=#font1_colour#
SolidColor=0,0,0,1
NumOfDecimals=2
AntiAlias=1
Text=%1%
User avatar
Yincognito
Rainmeter Sage
Posts: 7029
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: New PerfMon Plugin

Post by Yincognito »

First of all, the skin works for me, but then my environment (Win7) is different than yours, so my "test" might not be accurate from that POV.

Secondly, have you tried running just the problem skin (without the working one, that is)? Does that make a difference?

Lastly, just a wild guess ... doesn't the '% Processor Time' child measure need a parent measure with its Mode set to 'Difference'? Thinking about it, that other (working) skin has probably set the correct '% Processor Time' parent Mode to 'Difference', while this one does not, since it's using the 'Working Set - Private' default Mode, which is 'Normal' ... maybe a cause for conflict? Anyway, it has been a while since I've written a skin, so I might be wrong on this, but it doesn't hurt to explore the possibility, if you think that could be the culprit.

Other than that, maybe jsmorley has a better idea on how to deal with this...
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
CoffeeKid
Posts: 3
Joined: July 31st, 2014, 10:20 pm

Re: New PerfMon Plugin

Post by CoffeeKid »

It looks like when I start up Guild Wars 2 the problem occurs. In this screenshot tried launching the game several times to recreate the issue. The problem is not consistent with that game.

Image

I'll keep my eye out for recreating the issue with just the one skin running. I'll also try running in normal mode.
User avatar
Yincognito
Rainmeter Sage
Posts: 7029
Joined: February 27th, 2015, 2:38 pm
Location: Terra Yincognita

Re: New PerfMon Plugin

Post by Yincognito »

If nothing works and you come to the conclusion that some software (e.g. that game) is causing the problem, maybe you could try triggering a refresh of those 2 skins either when you start the game or when you exit it - since the skins' refresh seems to solve the issue...

It wouldn't be a "normal" solution, but at least it has the chance to be a successful "workaround". Of course, you should try all the other options / solutions first, and apply this only as the last option. I'm sure there is something that needs to be changed in the code itself, otherwise why the first skin works with no issues?
Profiles: Rainmeter ProfileDeviantArt ProfileSuites: MYiniMeterSkins: Earth
crlamke
Posts: 1
Joined: December 18th, 2016, 12:49 am

Re: New PerfMon Plugin

Post by crlamke »

Hi, Ailia. Did you ever post the source code to your plugin? It works very well. I'd just like to see the source.

Thanks!