Seite 3 von 3
Re: Liste der laufenden Prozesse / Programme ermitteln
Verfasst: 18.05.2015 15:06
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
Re: Liste der laufenden Prozesse / Programme ermitteln
Verfasst: 18.05.2015 16:12
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
Re: Liste der laufenden Prozesse / Programme ermitteln
Verfasst: 18.05.2015 17:04
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
Re: Liste der laufenden Prozesse / Programme ermitteln
Verfasst: 18.05.2015 20:14
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
aus!
Vielen Dank für die Tipps!
LG
Wolfgang
Re: Liste der laufenden Prozesse / Programme ermitteln
Verfasst: 06.11.2015 11:20
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.