Results 1 to 8 of 8

Thread: Verborgen processen vinden

  1. #1

    Verborgen processen vinden

    Ik ben een verstokt Delphi5-gebruiker en probeer een methode te vinden om alle actieve processen te vinden.

    EnumWindows() en GetWindowProcessThreadId() geven alleen processen met een "Window".
    Het process, waarvan ik de activiteit wil vaststellen heeft geen window en ook geen unit Main.
    Ik behelp me nu met de CommandLineEditor met de opdracht "TaskList".

    Gaarne tips!
    Do everything as simple as possible, but not simpler.
    A. Einstein

  2. #2
    Fornicatorus Formicidae VideoRipper's Avatar
    Join Date
    Mar 2005
    Location
    Vicus Saltus Orientalem
    Posts
    5,708
    Dit is een redelijk oude post (uit 2009) op StackOverflow, dus waarschijnlijk werkt het op Delphi 5 en doet het wat je zoekt.
    TMemoryLeak.Create(Nil);

  3. #3
    Thanks for your answer! The second source code was very helpfull.

    However:
    Since the last update of Windows11, when I start the process, it runs and functions but is then closed by Windows. The cause of this behavior is the presence of a WinExec statement in the source code of the hidden process. Windows sees this as dangerous! When I remove this WinExec statement, the proces isn’t closed by Windows.

    I use the hidden process to, once a day, after the computer wakes up from sleep, start a program that shows birthdays.

    Apparently it is no longer possible, for personal use, to automatically start a program when the computer awakes from sleep.

    I appreciate a solution for this problem!

  4. #4
    Klopt. Deze functie is érg oud, namelijk uit het 16 bit tijdperk (Windows 3.11 en eerder. Windows 95 was al 32 bit).
    Ondersteuning voor 16 bit programma's is verwijderd uit Windows 10, of tenminste standaard uitgeschakeld en daarmee hebben ze wellicht ook het gebruikt van dit soort compatibiliteitsfuncties wat aangescherpt.

    https://learn.microsoft.com/en-us/wi...inbase-winexec zegt:
    Note This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.
    De functie heeft sowieso wat nadelen. Hij kan bijvoorbeeld niet goed overweg met spaties in bestandsnamen, en zou daardoor het verkeerde programma uit kunnen voeren als je een pad met spaties erin meegeeft. Daarom wordt het als risico gezien. E.e.a. staat ook toegelicht op die pagina.

    CreateProcess is dus het alternatief voor het uitvoeren van programma's.

    In sommige gevallen kan je ook ShellExecute gebruiken. De kan programma's starten, maar kan ook direct een bestand kan openen. Windows zoekt dan uit met welk programma dat moet op basis van wat de gebruiker op Windows ingesteld heeft.
    Last edited by GolezTrol; 10-Feb-23 at 10:09.
    1+1=b

  5. #5
    Hartelijk dank voor uw reactie.

    Het klopt helemaal; zowel bij gebruik van ShellExecute als CreateProcess wordt het process niet door Windows beëindigd.

    Het was dus inderdaad die verouderde WinExec, die dat veroorzaakte en niet de beveiliging.
    Do everything as simple as possible, but not simpler.
    A. Einstein

  6. #6
    Helaas was mijn vorige conclusie onjuist.
    Kennelijk duurt het een dag voor Windows een programma als bedreiging ziet.

    De situatie is nu zo, dat het programma onmiddellijk wordt afgesloten ongeacht of ik WinExec, ShellExecute of CreateProcess gebruik.

  7. #7
    In plaats van Windows te enumeraten kun je beter hetzelfde doen als wat tasklist doet, namelijk processen enumeraten. Maar snap niet zo goed waar je nu op vastloopt? Als je een process wil starten wanneer de computer wakker wordt vanuit sleep/hibernate dan kun je een scheduled task icm een trigger gebruiken.

  8. #8
    rweijnen Dank voor de tip. Ik ga het onderzoeken.
    Do everything as simple as possible, but not simpler.
    A. Einstein

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •