AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wozu sind Jobs eigentlich gut?

Ein Thema von Der schöne Günther · begonnen am 2. Mai 2013 · letzter Beitrag vom 3. Mai 2013
 
Der schöne Günther

Registriert seit: 6. Mär 2013
6.212 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Wozu sind Jobs eigentlich gut?

  Alt 3. Mai 2013, 12:15
Ich bin eben auch gerade über etwas im Bereich Windows PowerShell gestolpert, auf den ersten Blick schien da auch etwas Job genannt zu werden, was eventuell jetzt nicht das ist, was in der Windows-API eigentlich als Job bezeichnet wird. Ich habe allerdings nicht genau hingesehen und finde die Seite auf die Schnelle nicht mehr ...

MSDN erklärt es letztendlich doch sehr gut:

Auf About Processes and Threads steht: A job object allows groups of processes to be managed as a unit. Job objects are namable, securable, sharable objects that control attributes of the processes associated with them. Operations performed on the job object affect all processes associated with the job object.

Auf der Seite Job Objects steht eine gute Zusammenfassung, was man damit typischerweise anstellen kann.


Mein ursprüngliches Problem war exakt das, wie es bei StackOverflow schon einmal aufgetaucht ist: Starte ich meine Delphi-Anwendung von der cmd.exe aus (oder z.B. start.exe), steckt die Anwendung in keinem Job.
So kann ich einen neuen Job mit den wildesten Eigenschaften erstellen und mich selbst dann dort hineinpacken!

Starte ich mein Programm normal im Explorer per Doppelklick auf die Exe oder Verknüpfung, stecke ich bereits in einem Job. Das kann man einfach direkt mittels IsProcessInJob herausfinden. Lustigerweise kann man mittels QueryInformationJobObject zwar Informationen über den Job, in welchem man auf alle Zeit gefangen ist auslesen, sie aber nicht modifizieren: Man kennt weder den Namen noch das Handle des Jobs. Das ist so gewollt und wahrscheinlich auch gut so.

Trotzdem hindert mich jetzt immer noch keiner daran, einen neuen Job zu erstellen und mittels dem dwCreationFlags -Parameter bei CreateProcess noch ein CREATE_BREAKAWAY_FROM_JOB (0x1000000) anzugeben, denn ein mit CreateProcess erstellter Job landet sonst normalerweise im selben Job wie sein Parent-Prozess.


PS: Den Großteil der nötigen Funktions-Deklarationen und Konstanten für Delphi liefert schwa226 netterweise schon hier
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz