Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak mogę najlepiej zakończyć process innej aplikacji

Ostatnio zmodyfikowano 2011-11-05 06:58
Autor Wiadomość
yoogi
Temat założony przez niniejszego użytkownika
Jak mogę najlepiej zakończyć process innej aplikacji
» 2011-11-04 18:58:50
Witam, mam dwie aplikacje (obie napisałem ja) i chcę za pośrednictwem pierwszej zakończyć drugą, jak to zoribć w najprostszy sposób. Pliki i rejestr odpadają :)
P-43319
m4tx
» 2011-11-04 19:01:47
Na Linuksie najprostszy sposób to chyba
system( "killall twojaaplikacja" );
. Na Windowsie zapewne uchwyty :P
P-43320
npHard
» 2011-11-04 21:38:09
Sprecyzuj o jaki system. W linuksie i innych systemach zgodnych z POSIX możesz z poziomu C/C++ użyć funkcji kill do wysłania dowolnemu procesowi sygnału SIGKILL. Oczywiście musisz znać pid tego procesu...
P-43321
yoogi
Temat założony przez niniejszego użytkownika
» 2011-11-05 00:22:01
Windows, znalazłem rozwiązanie:

C/C++
BOOL KillProcessByName( char * szProcessToKill )
{
    HANDLE hProcessSnap;
    HANDLE hProcess;
    PROCESSENTRY32 pe32;
    DWORD dwPriorityClass;
   
    hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); // Takes a snapshot of all the processes
   
    if( hProcessSnap == INVALID_HANDLE_VALUE ) {
        return( FALSE );
    }
   
    pe32.dwSize = sizeof( PROCESSENTRY32 );
   
    if( !Process32First( hProcessSnap, & pe32 ) ) {
        CloseHandle( hProcessSnap );
        return( FALSE );
    }
   
    do {
        if( !strcmp( pe32.szExeFile, szProcessToKill ) ) { //  checks if process at current position has the name of to be killed app
            hProcess = OpenProcess( PROCESS_TERMINATE, 0, pe32.th32ProcessID ); // gets handle to process
            TerminateProcess( hProcess, 0 ); // Terminate process by handle
            CloseHandle( hProcess ); // close the handle
        }
    } while( Process32Next( hProcessSnap, & pe32 ) ); // gets next member of snapshot
   
    CloseHandle( hProcessSnap ); // closes the snapshot handle
    return( TRUE );
}
P-43323
Drraven
» 2011-11-05 06:58:36
nie trzeba znać procesu. Można też po nazwach wyłączać killall. a w windowsie to albo po uchwycie, albo WM:COMAND do innej aplikacji może?
P-43326
« 1 »
  Strona 1 z 1