Prozesse anzeigen lassen



  • Guten Tag alle samt,
    ich wollte erfragen welche Optionen mir unter "Windows XP" zur Verfügung stehen um Prozesse anzeigen zu lassen, ich meine damit alle Prozesse die auch im "Taskmanager" angezeigt werden.
    Ich hoffe hier kennt einer ein Lösungsansatz, wenn dies der Fall ist wäre ein "post" sehr zuvorkommend.

    Hochachtungsvoll der Themenstarter



  • Hab mal irgendwo das gefnden, vielleicht hilfts dir:

    #include <windows.h>
    #include <tlhelp32.h>
    #include <stdio.h>
    
    void printError( TCHAR* msg );
    BOOL KillProcessByName(char *szProcessToKill);
    
    int main()
    {
    	KillProcessByName("Skype.exe");      // Anstatt Icq.exe halt "Test.exe" eingeben!
    	return 0;
    }
    
    BOOL KillProcessByName(char *szProcessToKill)
    {
    	HANDLE hProcessSnap;
    	HANDLE hProcess;
    	PROCESSENTRY32 pe32;
    	DWORD dwPriorityClass;
    
    	hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
    
    	if( hProcessSnap == INVALID_HANDLE_VALUE )
    	{
    		printError( "CreateToolhelp32Snapshot (of processes)" );
    		return( FALSE );
    	}
    
    	pe32.dwSize = sizeof( PROCESSENTRY32 );
    
    	if( !Process32First( hProcessSnap, &pe32 ) )
    	{
    		printError( "Process32First" );  
    		CloseHandle( hProcessSnap );     
    		return( FALSE );
    	}
    
    	do{
    		if(!strcmp(pe32.szExeFile,szProcessToKill))
      		{
      			printf("Prozess: %s \n",pe32.szExeFile);
      			printf("PID: %d \n",pe32.th32ProcessID );  
    			hProcess = OpenProcess(PROCESS_TERMINATE,0, pe32.th32ProcessID);
    			TerminateProcess(hProcess,0);
    			CloseHandle(hProcess);
      		} 
    	} while( Process32Next(hProcessSnap,&pe32) );
    
    	CloseHandle( hProcessSnap );
    	getchar();
    	return( TRUE );
    }
    
    void printError( TCHAR* msg )
    {
      DWORD eNum;
      TCHAR sysMsg[256];
      TCHAR* p;
    
      eNum = GetLastError( );
      FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
             NULL, eNum,
             MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
             sysMsg, 256, NULL );
    
      // Trim the end of the line and terminate it with a null
      p = sysMsg;
      while( ( *p > 31 ) || ( *p == 9 ) )
        ++p;
      do { *p-- = 0; } while( ( p >= sysMsg ) &&
                              ( ( *p == '.' ) || ( *p < 33 ) ) );
    
      // Display the message
      printf( "\n  WARNING: %s failed with error %d (%s)", msg, eNum, sysMsg );
    }
    


  • --> MSDN: EnumProcesses

    microsoft gibt dir sogar ein beispiel...
    http://msdn2.microsoft.com/en-us/library/ms682623(VS.85).aspx


Anmelden zum Antworten