Announcement

Collapse
No announcement yet.

Process kill

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Process kill

    Hallo,

    ich versuche gerade für einen Barcodescanner der mit WinCE 5.0 läuft ein Programm zu schreiben das mir einen bestimmten Process beendet, weil ich ein update auf ca. 400 Geräten machen will aber die Anwendung nicht laufen darf. Habe schon einiges gefunden nur bekomme es nicht zum laufen. Ich benutze Visual C++ 2008 und eine Konsolenanwendung für intelligente Geräte und den Standartsdk500 compiler. Soweit bin ich bis jetzt

    Code:
    #pragma once
    #include "resource.h"
    #include <windows.h>
    #include <tlhelp32.h>
    #include <stdio.h>
    #include <string>
    #include <stdlib.h>
    #include <sstream>

    using namespace std;

    void printError( TCHAR* msg );
    BOOL KillProcessByName(char *szProcessToKill);


    BOOL KillProcessByName(char *szProcessToKill)
    {
    HANDLE hProcessSnap;
    HANDLE hProcess;
    PROCESSENTRY32 pe32;
    DWORD dwPriorityClass;

    hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );

    if( hProcessSnap == INVALID_HANDLE_VALUE )
    {
    printError( L"CreateToolhelp32Snapshot (of processes)" );
    return( FALSE );
    }


    pe32.dwSize = sizeof( PROCESSENTRY32 );

    if( !Process32First( hProcessSnap, &pe32 ) )
    {
    printError( L"Process32First" );
    CloseHandle( hProcessSnap );
    return( FALSE );
    }

    std::stringstream ss;
    std::string pfind;
    ss << pe32.szExeFile;
    ss >> pfind;

    std::stringstream ssp;
    std::string cprocess;
    ssp << szProcessToKill;
    ssp >> cprocess;


    do{
    if(pfind == cprocess)
    {
    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 );
    return( TRUE );
    }

    jedoch bekomme ich diese Fehlermeldungen:

    1>taskkillcpp2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "Process32Next" in Funktion ""int __cdecl KillProcessByName(char *)" (?KillProcessByName@@YAHPAD@Z)".
    1>taskkillcpp2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "Process32First" in Funktion ""int __cdecl KillProcessByName(char *)" (?KillProcessByName@@YAHPAD@Z)".
    1>taskkillcpp2.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "CreateToolhelp32Snapshot" in Funktion ""int __cdecl KillProcessByName(char *)" (?KillProcessByName@@YAHPAD@Z)".
    1>STANDARDSDK_500 (ARMV4I)\Debug/taskkillcpp2.exe : fatal error LNK1120: 3 nicht aufgelöste externe Verweise.

    Kann mir da jemand weiterhelfen?

    thx
    Max
Working...
X