gelöst: Liste der laufenden Prozesse / Programme ermitteln

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Liste der laufenden Prozesse / Programme ermitteln

Beitrag von ts-soft »

derschutzhund hat geschrieben:1. Unter Linux kann ich kein icon ins Programm einbauen. Die Optionen unter "Projekt" ist deaktiviert.
derschutzhund hat geschrieben:Natürlich geht es um das System-Tray! Das steht auch im obersten Beitrag auf dieser Seite!

Code: Alles auswählen

EnableExplicit

UsePNGImageDecoder()

LoadImage(0, #PB_Compiler_Home + "logo.png")
CopyImage(0, 1)
ResizeImage(1, 24, 24)
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "")
gtk_window_set_icon_(WindowID(0), ImageID(0))
AddSysTrayIcon(0, WindowID(0), ImageID(1))
ButtonGadget(0, 10, 10, 100, 30, "Toggle")

Define TrayIcon = #True

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow : Break
    
    Case #PB_Event_Gadget
      If EventGadget() = 0
        If TrayIcon
          RemoveSysTrayIcon(0)
          TrayIcon = #False
        Else
          AddSysTrayIcon(0, WindowID(0), ImageID(1))
          TrayIcon = #True
        EndIf
      EndIf
  EndSelect
ForEver
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
auser
Beiträge: 58
Registriert: 17.05.2011 10:56

Re: Liste der laufenden Prozesse / Programme ermitteln

Beitrag von auser »

derschutzhund hat geschrieben: Ein kleines Progrämmchen 13Kb vom Kollegen wird als Minisymbol in der Taskleiste unten rechts in meinem Linux angezeigt!
Also geht es, aber halt mit PB nicht!
Normalerweise werden Fenster für so was bei Bedarf versteckt oder anzeigt. JWM stellt sich jedoch mit gtk_widget_hide() unter Debian (und das sehr wohl auch mit C-Code) etwas zickig an (es versteckt zwar das Fenster aber danach bleibt der Eintrag in der Taskleiste - selbst wenn das Fenster wieder versteckt wird) und in Fedora finde ich JWM (in sogar neuerer Version) als Window-manager ziemlich unausgereift (da kannste mit Fenster bewegen am Desktop zeichnen). Also wenn es JWM sein soll und es damit bei deinem Kollegen funktioniert wäre es interessant was dein Kollege da im C-Code drin stehen hat... dann nimmste das und überträgst es ganz einfach nach PB. Weil PB kocht da nur mit Wasser (in dem Fall bespaßt es halt die GTK für dich).

Wie auch immer... das funktioniert hier unter Debian Jessie mit LXDE als Desktopmanager (und unter JWM macht es zumindest auch alle Icons richtig):

Code: Alles auswählen

OpenWindow(0, 0, 0, 320, 240, "Test",#PB_Window_MinimizeGadget|#PB_Window_Invisible)

CreateImage(0, 16,16) : StartDrawing(ImageOutput(0)) : Box(3,3,10,10,255) : StopDrawing()
gtk_window_set_icon_(WindowID(0), ImageID(0))
AddSysTrayIcon(1, WindowID(0), ImageID(0))

CreatePopupMenu(0) 
MenuItem(0,"Open")

Repeat
  Select WaitWindowEvent() 
    Case #PB_Event_CloseWindow
      Break
    Case #PB_Event_MinimizeWindow
      HideWindow(0,1)
    Case #PB_Event_SysTray
      DisplayPopupMenu(0,WindowID(0),DesktopMouseX(),DesktopMouseY()-16)
    Case #PB_Event_Menu
      SetWindowState(0,#PB_Window_Normal)
      HideWindow(0,0)
  EndSelect 
ForEver  
Hier wär noch bisschen C-Code dazu (aber auch der rettet das Hide in JWM nicht - ich glaub PB macht ohnehin im Hintergrund lediglich ein gtk_widget_hide() bei HideWindow(x,1)): http://www.codeproject.com/Articles/271 ... y-with-GTK
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Liste der laufenden Prozesse / Programme ermitteln

Beitrag von derschutzhund »

Dein Beispiel funktioniert bei meinem PuppyLinux ohne zusätzliche Erweiterungen!
Die Basis für mein System ist Tahr 6.0.2!
Als icon ein rotes Quadrat ist auch völlig in Ordnung und besser als ein extra *.bmp.
Versuche das mal in mein Programm einzubauen.

LG

Wolfgang
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
derschutzhund
Beiträge: 328
Registriert: 06.06.2013 20:37
Computerausstattung: Satellite A210-19Z, Samsung Netbook N130, VPAD10

Re: Liste der laufenden Prozesse / Programme ermitteln

Beitrag von derschutzhund »

Bis auf eine Kleinigkeit funktioniert es.
Ich kann das Programmfenster mit dem Open-Button einmal anzeigen lassen, wenn ich es dann mit dem "-"-Button oben links unsichtbar schalte dann wird es mit dem Open-Button nicht wieder korrekt angezeigt sondern flackert nur kurz auf.
Das ist bei dem kleinen Beispielprog und bei meinem Programm genau gleich.
Normal sollte das Fensterchen doch, auch wie beim ersten Mal, richtig angzeigt werden (und bleiben) oder?

LG

Wolfgang

EDIT: Gerade als ich den Beitrag abgeschickt hatte ist mir noch eine Idee gekommen. Jetzt ist alles wie gewünscht und das Fenster wird auch nachdem schließen wieder normal angezeigt. Der Fehler liegt hier:

Code: Alles auswählen

  If Event = #PB_Event_MinimizeWindow
       HideWindow(#Window_0,#True)
  EndIf  
Habe jetzt einen eigenen Button und führe damit nur

Code: Alles auswählen

 HideWindow(#Window_0,#True)
aus!

Vielen Dank für die Tipps!

LG

Wolfgang
Satellite A210-19Z, Samsung N130, VPAD10, WinXP, Win7, PuppyLinux, PB 5.24, 5.31. 5.70
Elektronik, Mikrocontroller, CNC-Technik, 3D-Druck
cptdark
Beiträge: 56
Registriert: 28.02.2010 14:13
Kontaktdaten:

Re: Liste der laufenden Prozesse / Programme ermitteln

Beitrag von cptdark »

derschutzhund hat geschrieben: PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND[0m
3948 1 root R 579m 31% 1 18% /usr/lib/firefox/firefox
31156 31154 root R 4380 0% 0 5% top
12383 12327 root S 141m 7% 1 0% {pbcompiler} /usr/local/PureBasic/
...

Man sieht sofort, dass 579m und 141m Module sind.
Auch wenn schon etwas lange her:

m steht nicht für Modul sondern für MINUTEN
wenn nichts da steht, sind das Sekunden.

Wie sich die genau berechnet kann ich dir nicht sagen.
Alles in der Liste sind aktive Programme.
Bei STAT gibt es ausser Running und Sleeping wahrscheinlich noch einen für Dead (glaube ich), was sowas wie abgestürzt bedeutet.
Manjaro x64 * Windows 10 x64 * PureBasic 5.50
planet-RK
Antworten