It is currently September 29th, 2024, 3:38 pm

running tasks and system tray

General topics related to Rainmeter.
viperveteran
Posts: 6
Joined: May 5th, 2014, 11:20 am

running tasks and system tray

Post by viperveteran »

Hi everyone,

So I have decided to use the enigma skin to replace my windows taskbar etc. I know that rainmeter is not designed to be a shell replacement. I was however wondering whether it would be possible to create a ini or a part of the skin that reads the running applications (like in task manager) and make them selectable. Also would it be possible to have an enigma box dedicated to displaying the apps that are in the system tray?
User avatar
fonpaolo
Moderator
Posts: 1387
Joined: April 11th, 2013, 8:08 pm
Location: Italy

Re: running tasks and system tray

Post by fonpaolo »

Yes, it's possible, I've already done something similar, to monitor programs currently running in my launchers skin, so, limited only to those (still under testing).
I can't say it's easy to code something like that, even more complicated if you plan to distribute the skin, because you've to monitor every known program, one measure for every single program, or choose in some way what programs one has installed in his system.
viperveteran
Posts: 6
Joined: May 5th, 2014, 11:20 am

Re: running tasks and system tray

Post by viperveteran »

hmm (thanks for the reply)

Wouldn't it be possible to read the information displayed in task manager in the applications tab?

Or are there limitations within windows that prevent that information being accessed?
User avatar
fonpaolo
Moderator
Posts: 1387
Joined: April 11th, 2013, 8:08 pm
Location: Italy

Re: running tasks and system tray

Post by fonpaolo »

Rainmeter has his own plugin, named Process, with it you can read if a program is running or not, every program needs to be controlled separately, and here comes the complication, you must have a measure for every program you want to monitor...

I'm already thinking to build something similar, but I still have to think how to do it using less code as possible.
...and obviously all this skin could do is nothing compared with the original Taskbar.

I'm still searching some Windows code to add at least a few functions, but just a few.
User avatar
jsmorley
Developer
Posts: 22790
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: running tasks and system tray

Post by jsmorley »

Might be something you could do with the RunCommand plugin and "WMIC PROCESS get Caption" in a command window to get a list of all running processes. Then have some kind of lookup table in Lua that has all the processes you want to "watch" (or the ones you want to "exclude") and react to that.

Code: Select all

Caption                    
System Idle Process        
System                     
smss.exe                   
csrss.exe                  
wininit.exe                
csrss.exe                  
winlogon.exe               
services.exe               
lsass.exe                  
svchost.exe                
svchost.exe                
dwm.exe                    
atiesrxx.exe               
svchost.exe                
svchost.exe                
svchost.exe                
svchost.exe                
svchost.exe                
AvastSvc.exe               
spoolsv.exe                
svchost.exe                
schedul2.exe               
armsvc.exe                 
afcdpsrv.exe               
Fuel.Service.exe           
aaHMSvc.exe                
AsSysCtrlService.exe       
AsusFanControlService.exe  
dasHost.exe                
FileZilla server.exe       
sqlwriter.exe              
svchost.exe                
TeamViewer_Service.exe     
svchost.exe                
svchost.exe                
WUDFHost.exe               
svchost.exe                
atieclxx.exe               
taskhostex.exe             
itype.exe                  
ipoint.exe                 
explorer.exe               
HWiNFO64.exe               
rundll32.exe               
SearchIndexer.exe          
SkyDrive.exe               
schedhlp.exe               
df.exe                     
TrueImageMonitor.exe       
TibMounterMonitor.exe      
df64.exe                   
AvastUI.exe                
Dropbox.exe                
xchat.exe                  
atkexComSvc.exe            
syncagentsrv.exe           
wmpnetwk.exe               
SettingSyncHost.exe        
FSCapture.exe              
TGitCache.exe              
WUDFHost.exe               
Rainmeter.exe              
chrome.exe                 
chrome.exe                 
chrome.exe                 
chrome.exe                 
chrome.exe                 
chrome.exe                 
chrome.exe                 
chrome.exe                 
chrome.exe                 
chrome.exe                 
chrome.exe                 
chrome.exe                 
cmd.exe                    
conhost.exe                
SearchProtocolHost.exe     
notepad++.exe              
WMIC.exe                   
WmiPrvSE.exe               
The "tasklist" command in a RunCommand plugin measure might also do the trick.

tasklist /FI "SESSIONNAME ne Services"

Code: Select all

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
csrss.exe                      716 Console                    1     10,700 K
winlogon.exe                   772 Console                    1        796 K
dwm.exe                         80 Console                    1     37,748 K
atieclxx.exe                  3832 Console                    1      1,544 K
taskhostex.exe                3936 Console                    1      7,128 K
itype.exe                     3948 Console                    1      2,488 K
ipoint.exe                    4028 Console                    1      2,060 K
explorer.exe                  2852 Console                    1    141,836 K
HWiNFO64.exe                  2128 Console                    1      8,092 K
rundll32.exe                  3856 Console                    1      1,468 K
SkyDrive.exe                  4432 Console                    1      3,840 K
schedhlp.exe                  4920 Console                    1      1,020 K
df.exe                        4996 Console                    1      9,124 K
TrueImageMonitor.exe          5016 Console                    1      9,004 K
TibMounterMonitor.exe         5048 Console                    1      2,396 K
df64.exe                      4300 Console                    1        656 K
AvastUI.exe                   1268 Console                    1      7,796 K
Dropbox.exe                   4616 Console                    1     76,892 K
xchat.exe                     3804 Console                    1      6,224 K
SettingSyncHost.exe           6420 Console                    1      1,800 K
FSCapture.exe                 3564 Console                    1        408 K
TGitCache.exe                 6512 Console                    1      3,568 K
Rainmeter.exe                 5632 Console                    1     45,624 K
chrome.exe                    7716 Console                    1    141,396 K
chrome.exe                    7556 Console                    1    126,008 K
chrome.exe                    6664 Console                    1     40,056 K
chrome.exe                    3424 Console                    1     42,884 K
chrome.exe                    3764 Console                    1    101,456 K
chrome.exe                    6820 Console                    1     40,140 K
chrome.exe                    3932 Console                    1     59,800 K
chrome.exe                    5420 Console                    1     74,376 K
chrome.exe                    5472 Console                    1     64,160 K
chrome.exe                    4188 Console                    1     79,380 K
cmd.exe                       7352 Console                    1      2,252 K
conhost.exe                   6940 Console                    1      5,188 K
tasklist.exe                   868 Console                    1      5,396 K
This has nothing to do with what is "shown" in the system tray. As far as I know, it is up to the app to tell Windows to display an icon in the system tray or not, and I don't know of any way to get what is displayed there after the fact. It might well be very "dynamic" and not stored anywhere you can get at.
User avatar
fonpaolo
Moderator
Posts: 1387
Joined: April 11th, 2013, 8:08 pm
Location: Italy

Re: running tasks and system tray

Post by fonpaolo »

Even if I tend to avoid plugins not included in Rainmeter, (...and LUA scripts :???: ) I must admit that this sounds very interesting.

Another question strictly related: does the Process plugin or this solution understand if there are multiple instances of a program running and treat them separately?
User avatar
jsmorley
Developer
Posts: 22790
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: running tasks and system tray

Post by jsmorley »

fonpaolo wrote:Even if I tend to avoid plugins not included in Rainmeter, (...and LUA scripts :???: ) I must admit that this sounds very interesting.

Another question strictly related: does the Process plugin or this solution understand if there are multiple instances of a program running and treat them separately?
Nope. Process is binary. Is any instance of "chrome.exe" running or not...

Certainly nothing in WMIC or TaskList is going to filter that way. You can have two entirely different SomeApp.exe instances that are two entirely different applications. "image name" in Windows is not unique. You would need to deal with duplicates like chrome.exe in the Lua script.
User avatar
fonpaolo
Moderator
Posts: 1387
Joined: April 11th, 2013, 8:08 pm
Location: Italy

Re: running tasks and system tray

Post by fonpaolo »

Thanks jsmorley, I was almost sure... I just want to have a final word.

For what I'm doing, it's already good as is, since I only need to know if a program is running, and display his state on the launcher.

...for the LUA code, I need to learn how to build it... with my current speed, it's already scheduled for the next century! :sly:
Last edited by fonpaolo on May 5th, 2014, 2:54 pm, edited 1 time in total.
User avatar
jsmorley
Developer
Posts: 22790
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: running tasks and system tray

Post by jsmorley »

fonpaolo wrote:Thanks jsmorley, I was almost sure... I just want to have a final word.

For what I'm doing, it's already good as is, since I only need to know if a program is running, and display his state on the launcher.
Yeah, Process is fine for that. I did something like that here:
http://jsmorley.deviantart.com/art/ActiveDock-277230170
User avatar
fonpaolo
Moderator
Posts: 1387
Joined: April 11th, 2013, 8:08 pm
Location: Italy

Re: running tasks and system tray

Post by fonpaolo »

You're light years ahead! O.O :thumbup:
...well, maybe I'm a little slow. :oops:

I'm doing it in this way:

Code: Select all

[MeasureLLData1]
Measure=Time
Format="#LLP1#"
RegExpSubstitute=1
Substitute=".*\\(.*)$":"\1","\w+.pdf":"","\w+.txt":"","\w+.ini":"","\w+.inc":"","\w+.doc":"","\w+.docx":""
DynamicVariables=1

[MeasureProgr1]
Measure=Plugin
Plugin=Process.dll
ProcessName=[MeasureData1]
IfBelowValue=1
IfBelowAction=[!HideMeter MeterProg1On][!Redraw]
IfEqualValue=1
IfEqualAction=[!ShowMeter MeterProg1On][!Redraw]
But I'm still searching a better way to react only if it's and .exe and have something like "-1" if it's something else.

I'll give a look at your code. :D
Last edited by fonpaolo on May 5th, 2014, 3:05 pm, edited 1 time in total.