[win32/C++] procesID vinden van een proces dat een ander ...

Pagina: 1
Acties:

  • cobratbq
  • Registratie: Maart 2001
  • Laatst online: 17-12-2015
Ik moet een functie hebben (of zelf schrijven mag ook) waarmee ik het volgende kan:
Stel ik het een proces1 en een proces2 en een controleproces.
Het controleproces controleert, proces1 en proces2 doen hun werk. Nu sluit proces1 proces2 af. Nu wil ik dat het controleproces dan kan zien wie proces2 afgesloten heeft. (Of eventueel, maar lijkt me moeilijker, dat proces2 zelf kan zien wie hem afsluit.)

Ik heb al gekeken op msdn.microsoft.com voor info. Maar alle functies die ik daar tegenkom die hebben het over levende processen, en niet over processen die geterminated worden.
Ik heb op google en deja gezocht, en ik heb op codeproject gekeken.

Ik weet niet of het mogelijk is :?, maar als het zo is, zou ik graag een hint willen hebben _/-\o_

edit:
Ohja, ik heb wel ergens wat voorbij zien komen over het opvangen van een terminate-signaal, maar ik zou niet weten hoe.

[ Voor 16% gewijzigd door cobratbq op 06-07-2004 23:44 ]

One ring to rule them all, one ring to find them, one ring to bring them all, and in darkness bind them...


  • staefke
  • Registratie: December 2003
  • Laatst online: 19-05 22:28
misschien vind je hier iets nuttigs:
http://www.internals.com/articles/apispy/apispy.htm

duh ?


Verwijderd

Ik betwijfel of het mogelijk is wat je wilt...
Eigenlijk plaats je een REQUEST bij de kernel of deze een bepaalde processID wil killen. Het is dus nooit een process zelf dat een ander process kill'ed.
Verder: het process dat gekilled wordt... tja... die is weg.. dus deze kan al helemaal niets doen met die informatie WIE hem gekilled heeft.

Best verder een interessant idee dat van die Controller Process die graag wil weten wie wat om soep heeft geholpen. Ik hou dit draadje even in de gaten.

Suc6

  • AaroN
  • Registratie: Februari 2001
  • Laatst online: 16-08-2023

AaroN

JayGTeam (213177)

Kan je niet direct helpen, heb echter wel een boek dat hier over handelt:
"Programming Applications for Windows 4th Edition", Jeffrey Richter, Microsoft Press.

Daarin wordt o.a. een heleboel besproken over synchronization etc.

[ Voor 5% gewijzigd door AaroN op 07-07-2004 12:57 ]

JayGTeam (213177)


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Je architectuur klopt voor geen meter. In het geval dat proces1 proces2 afsluit dient proces1 dat te weten en die informatie desnoods openbaar te maken aan het controleproces.

Checken welk proces een ander proces heeft beeindigd (hoe doe je dat uberhaupt :? ) zou een vorm van auditing vereisen die niet in Win32 zit, en waar ik het nut ook absoluut niet van inzie. Je kunt nog net de exit-code opvragen middels GetExitCodeProcess maar that's it.

Professionele website nodig?


  • cobratbq
  • Registratie: Maart 2001
  • Laatst online: 17-12-2015
curry684 schreef op 07 juli 2004 @ 13:19:
Je architectuur klopt voor geen meter. In het geval dat proces1 proces2 afsluit dient proces1 dat te weten en die informatie desnoods openbaar te maken aan het controleproces.
Ja als je er vanuit gaat dat ik zelf controle heb over die processen, dan is dat idd een veel makkelijkere en duidelijkere manier. Maar het gaat er mij juist om dat die processen externe programma's zijn, waar ik verder geen grip op heb. Omdat het controleproces en proces1 verder geen relatie hebben, moet het controleproces 'toekijken' wie wat doet (als dat dus mogelijk is).

One ring to rule them all, one ring to find them, one ring to bring them all, and in darkness bind them...


  • cobratbq
  • Registratie: Maart 2001
  • Laatst online: 17-12-2015
Dit ziet er interessant uit. Mss kan ik idd op driver-level die api-calls in de gaten houden ofzo. Dit lijkt wel een beetje op dat stukje wat ik eerder al voorbij zag komen toen ik aan het zoeken was.

One ring to rule them all, one ring to find them, one ring to bring them all, and in darkness bind them...


  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 23-05 23:27

Tomatoman

Fulltime prutser

Je kunt hooguit vaststellen of het te controleren proces al dan niet door het controleproces wordt afgesloten.

Dat kun je bijvoorbeeld doen door het controleproces een custom message (laten we het een JijMoetNuAfsluiten message noemen) te laten versturen naar het te controleren proces. Als het te controleren proces afsluit, moet het vervolgens een broadcast doen met een andere custom message, waarin het aankondigt dat het gaat afsluiten. In die custom message kun je aangeven of het al dan niet een JijMoetNuAfsluiten message heeft ontvangen. Het controleproces krijgt nu een signaal (via die custom message) dat het te controleren proces gaat afsluiten en kan meteen lezen of het te controleren proces dat doet als reactie op een JijMoetNuAfsluiten message (die het controleproces zelf heeft verstuurd).

Dit principe werkt trouwens alleen als het te controleren proces 'netjes' wordt afgesloten via een WM_QUIT commando. Als het proces keihard wordt gekilld, is het gewoon opeens verdwenen en krijgt het niet de kans om een broadcast te doen.

[ Voor 16% gewijzigd door Tomatoman op 07-07-2004 20:07 ]

Een goede grap mag vrienden kosten.

Pagina: 1