windows - Ændre procesforælder til en proces til explorer.exe

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger CreateProcess til exec Notepad.exe, men procesforældre til notesblok er min egen AP. Da jeg lukkede min egen AP, blev procesforældre til notesblok til explorer. Hvordan ville jeg gøre for at sætte explorer som procesforælder til dette ny åbnet proces?

Bedste reference


Dette spørgsmål giver ingen mening. Windows har ikke et ægte forældrebarnsforhold mellem processer som andre OS'er kan. I øvrigt holdes nogle i formationen om lanceringsprocessen, men uden for CreateProcess-lanceringskoden håndteres duplikaterne og miljøet fra forælder proces, er der ingen yderligere særlige forhold mellem processerne. De løber, helt uafhængigt, som jævnaldrende.


Nogle taskmanagers viser et heirachisk forhold, der indebærer, at forældrenes barnsforhold forbliver, men i sidste ende er det bare hentet ved at scanne listen over processer til oprettelse af information for at se, om der kan findes kampe, der indebærer andre processer, var deres skaber - og dermed forælder.

Andre referencer 1


Prøv at bruge CreateRemoteThread () til at oprette en ny tråd inde i adresserummet for explorer.exe (hvis det kører), og så få den trådløse notepad.

Andre referencer 2


Der er ingen indbygget måde at sætte explorer.exe som den overordnede proces med det samme. Men fra det jeg kan fortælle dig kan du bruge p/påkald for at foretage nogle opkald for at opnå dette.


Her er en artikel om implementeringen ved hjælp af p/påkald for at starte som en anden bruger. Det giver dig intro til p/invoke processen. Så her er en artikel, der snakker om at starte en ikke-børneproces. Du kan kombinere informationen fra de to for at opnå dit ønskede mål. [1] [2]