Toon posts:

[c++] ExitProcess

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb met CreateProcess een aatal processen (SNMP daemons) gecreeerd. Nu wil ik deze ook weer kunnen afsluiten. Ik heb bij MSDN iets gelezen over ExitProcess maar ik krijg dat niet werkend.
Weet iemenand hoe ik processen weer fatsoenlijk afsluit?

  • Pooh
  • Registratie: April 2001
  • Niet online

Pooh

Lees eens een boek

ExitProcess
The ExitProcess function ends a process and all of its threads.

VOID ExitProcess(
UINT uExitCode);
Parameters
uExitCode
[in] Specifies the exit code for the process and for all threads that are terminated as a result of this call. Use the GetExitCodeProcess function to retrieve the process's exit value. Use the GetExitCodeThread function to retrieve a thread's exit value.
Return Values
None.

Remarks
ExitProcess is the preferred method of ending a process. This function provides a clean process shutdown. This includes calling the entry-point function of all attached dynamic-link libraries (DLLs) with a value indicating that the process is detaching from the DLL. If a process terminates by calling TerminateProcess, the DLLs that the process is attached to are not notified of the process termination.
Wat snap je niet :?

Verwijderd

Topicstarter
Hoe heeft ik aan welk process ge'exit moet worden?

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 02-09 19:44

Gerco

Professional Newbie

Op maandag 10 juni 2002 14:51 schreef knien001 het volgende:
Hoe heeft ik aan welk process ge'exit moet worden?
Niet, ExitProcess() sluit het HUIDIGE proces. Dus je eigen proces.

Misschien heb je meer aan TerminateProcess()

The TerminateProcess function terminates the specified process and all of its threads.
code:
1
2
3
4
BOOL TerminateProcess(
  HANDLE hProcess, // handle to the process
  UINT uExitCode   // exit code for the process
);

Maar let wel op:
The TerminateProcess function is used to unconditionally cause a process to exit. Use it only in extreme circumstances. The state of global data maintained by dynamic-link libraries (DLLs) may be compromised if TerminateProcess is used rather than ExitProcess.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

SendMessage(WM_QUIT, ....

edit: crap alleen voor processes met windows..

Verwijderd

ExitProcess beeindigd het proces dat deze functie aanroept. Als je dus andere processen wilt beeindigen zul je een constructie moeten maken waarbij je een bericht stuurt naar die processen waarna die zichzelf beeindigen.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 18:44
Op maandag 10 juni 2002 15:00 schreef unteraarsch het volgende:
SendMessage(WM_QUIT, ....

edit: crap alleen voor processes met windows..
Zelfde geldt voor ExitProcess, is alleen voor Windows.
code:
1
exit(0);

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Verwijderd

Topicstarter
Op maandag 10 juni 2002 14:57 schreef Gerco het volgende:

Niet, ExitProcess() sluit het HUIDIGE proces. Dus je eigen proces.

Misschien heb je meer aan TerminateProcess()
Maar ik kan dus niet op een veilige manier een door mezelf gekozen process killen.

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 02-09 19:44

Gerco

Professional Newbie

Op dinsdag 11 juni 2002 10:49 schreef knien001 het volgende:
Maar ik kan dus niet op een veilige manier een door mezelf gekozen process killen.
Jawel, functie in je proces maken die zelf ExitProcess() aanroept. Of een Window Message (WM_CLOSE/WM_QUIT?) sturen als het een window heeft en daarnaar luistert.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Topicstarter

Op dinsdag 11 juni 2002 10:52 schreef Gerco het volgende:

Jawel, functie in je proces maken die zelf ExitProcess() aanroept
Het probleem is dat ik zometeen minimaal 1000 processen heb en ik kan me nu ff snel niet bedenken hoe ik deze oplossing dan zou moeten gaan implementeren.
Of een Window Message (WM_CLOSE/WM_QUIT?) sturen als het een window heeft en daarnaar luistert.
De processen hebben een window, maar dit komt dan ook als functie binnen je process he. Je kunt hier geen bepaald process opgeven om af te sluiten, of wel?

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 02-09 19:44

Gerco

Professional Newbie

Op dinsdag 11 juni 2002 11:12 schreef knien001 het volgende:
Het probleem is dat ik zometeen minimaal 1000 processen heb en ik kan me nu ff snel niet bedenken hoe ik deze oplossing dan zou moeten gaan implementeren.
Ik zie niet wat het aantal processen ermee te maken heeft of het lastig is om zo'n functie erin te coden. Zijn die processen door jou geschreven of niet? Zo niet, zou ik er niet aan beginnen om een functie erin te proppen. Het SCHIJNT te kunnen, maar het lijkt me niet "veilig".
De processen hebben een window, maar dit komt dan ook als functie binnen je process he. Je kunt hier geen bepaald process opgeven om af te sluiten, of wel?
Dit snap ik niet. De message komt dan gewoon in de WindowProc van dat window binnen en als het naar een WM_QUIT message luistert sluit het zichzelf af.
Je moet de WM_QUIT natuurlijk wel naar het window sturen van het proces wat je af wilt sluiten.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Topicstarter
Op dinsdag 11 juni 2002 11:20 schreef Gerco het volgende:
Je moet de WM_QUIT natuurlijk wel naar het window sturen van het proces wat je af wilt sluiten.
Dat bedoel ik, hoe geef je dit dan aan? Waar geef ik dan een ProcessHandle mee ofzo.

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 02-09 19:44

Gerco

Professional Newbie

Op dinsdag 11 juni 2002 11:57 schreef knien001 het volgende:
Dat bedoel ik, hoe geef je dit dan aan? Waar geef ik dan een ProcessHandle mee ofzo.
ProcessHandle? Nergens, je geeft een Window Handle mee, wat je kan opzoeken met FindFindow() en dan kun je met PostMessage() of SendMessage() de message naar die handle sturen. Nu moet je alleen uitvogelen welk window bij welk process hoort, ik hoop dat die processen daar wel ergens een functie voor hebben?

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!

Pagina: 1