Programming Forums

Programming Forums (http://www.programmingforums.org/forumindex.php)
-   C++ (http://www.programmingforums.org/forum15.html)
-   -   Windows API: How to obtain a list of currently running processes. (http://www.programmingforums.org/showthread.php?t=8552)

CodeWeasel Feb 23rd, 2006 11:09 PM

Windows API: How to obtain a list of currently running processes.
 
Haven't posted in a while, figured I'd give you guys something from my personal code stash I've built up over the years. :) It wouldn't let me create a new thread in the tutorials section, so I've posted it here...

Here's a little piece of code that'll get the exe name for each running process. You'll need to include windows.h.

:

HANDLE            hSnapShot=NULL;
        HANDLE            hResult = NULL;
        PROCESSENTRY32    processInfo;
        char*            pstrExeName;

        bool bFirst = true;
        ::ZeroMemory(&processInfo, sizeof(PROCESSENTRY32));
        processInfo.dwSize = sizeof(PROCESSENTRY32);
        hSnapShot = CreateToolhelp32Snapshot(
                TH32CS_SNAPPROCESS, 0);
        if(hSnapShot == INVALID_HANDLE_VALUE)
                return NULL;

        while((bFirst ? Process32First(hSnapShot,
                &processInfo) : Process32Next(hSnapShot,
                &processInfo)))
        {
                bFirst = false;
                pstrExeName = strrchr(processInfo.szExeFile, '\\');
                if(!pstrExeName)
                        pstrExeName = processInfo.szExeFile;
                else
                        pstrExeName++;
                          // Do whatever you want with the name here. In my
                          // BPK program it puts the string in the listbox on the left
        }
        if(hSnapShot)
                CloseHandle(hSnapShot);

Enjoy!

For an example of this piece of code in action, see my process utility here: http://www.freewebs.com/wombatex/bpk.htm

Cache Feb 24th, 2006 3:52 AM

I haven't looked at you program but it sounds very similar some something I made a whill back. There is another resent thread in here that shows how to list all processes the non toolhelp way. MSDN also has well a commented example for this approach.

Also, I think you forgot to mention to include: tlhelp32.h

CodeWeasel Feb 24th, 2006 11:19 AM

Yeah, my bad, forgot the toolhelp header. I think I pieced this together from MSDN code about a year or so ago, so that's why it uses toolhelp.

nnxion Feb 25th, 2006 7:06 AM

What's the difference between the toolhelp (snapshot) way and the other way?


All times are GMT -5. The time now is 11:05 AM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC