W systemie Windows, jak mogę z wdziękiem poprosić uruchomiony program o zakończenie działania?

12

W systemach Unix lub Linux łatwo jest z wdziękiem poprosić uruchomioną aplikację o zakończenie działania: wysyłasz sygnał SIGTERM. Jeśli jego identyfikator procesu to 1234, możesz po prostu uruchomić kill 1234 lub kill -s TERM 1234 lub kill -15 1234.

Jak mogę zrobić to samo w systemie Windows?

Jeśli dobrze pamiętam, funkcja „Zakończ zadanie” Menedżera zadań (nie jego funkcja „Zakończ proces”) robiła to, co chcę. Ale od Windows 8.1 nie jest już tak łagodny; gdy korzystam z tej funkcji, powoduje to utratę niezapisanych danych.

Nie chcę pisać żadnego kodu, aby to zrobić. Gdybym to zrobił, zapytałbym o Stack Overflow. :)

unforgettableid
źródło
1
Jeśli jesteś programistą i chcesz to zrobić programowo, zobacz powiązane pytanie o przepełnienie stosu dotyczące tego, jak bezpiecznie poprosić proces o zakończenie .
unforgettableid
4
W systemie Windows nie ma nic wdzięcznego ........
Moab

Odpowiedzi:

14

taskkill.exe

Andy E pisze które możesz użyć taskkill.exe.

Aby zakończyć proces z identyfikatorem procesu 1234:

taskkill /pid 1234

Aby zakończyć notatnik.exe:

taskkill /im notepad.exe

Aby uzyskać więcej pomocy:

taskkill /?

Dodaje:

The /f przełącznik wymusiłby zabicie, ale nieużywanie go po prostu wysyła sygnał zakończenia, więc aplikacja zamyka się z wdziękiem.

On ma rację. Próbowałem użyć taskkill.exe (bez /f ), aby zakończyć działanie Notatnika i działał zgodnie z oczekiwaniami. Notatnik zapytał mnie, czy chcę zapisać niezapisany tekst, który wprowadziłem.

Używam domowej wersji systemu Windows 8.1. To wygląda jak taskkill.exe dołączono do systemu Windows bez dodatkowych opłat. To jest w c:\windows\system32.

Lub po prostu wyloguj się

Jeśli nie chcesz się tym przejmować, wyloguj się z konta użytkownika Windows, a następnie zaloguj się ponownie.

Aplikacje konsolowe

Dotyczące aplikacji konsoli (np. PowerShell), Chris Becke dodaje :

Nie ma prawdziwego sposobu na wdzięczne zamknięcie aplikacji konsoli w systemie Windows. Muszą obsługiwać jakiś pełen wdzięku mechanizm zamykania.

unforgettableid
źródło
Zauważ, że nie odpowiada to dokładnie temu, co dzieje się przy wylogowaniu lub zamknięciu; za to patrz stackoverflow.com/questions/520910/…
Matt McHenry
4

Możesz użyć rmlogotest.exe (Narzędzie do testowania logo Restart Manager). To darmowe narzędzie, napisane przez Microsoft, jest częścią zestawu certyfikacji aplikacji Windows.

Aby pobrać najnowszą wersję Zestawu certyfikacji aplikacji dla systemu Windows, pobierz i uruchom instalator zestawu Windows SDK. (Najnowszy instalator zestawu SDK systemu Windows można znaleźć w wyszukiwarce Google.) Usuń zaznaczenie wszystkich pól z wyjątkiem pola Zestaw certyfikacji aplikacji systemu Windows. Poczekaj na pobranie i zainstalowanie zestawu. Jeśli dobrze pamiętam, zestaw ma kilkaset megabajtów.

rmlogotest.exe prawdopodobnie będzie w środku C:\Program Files (x86)\Windows Kits\10\App Certification Kit jeśli używasz wersji 10 zestawu SDK systemu Windows.

Otwórz wiersz polecenia. Przejdź do właściwego katalogu. Wchodzić rmlogotest następnie spacja, a następnie numer identyfikacyjny procesu.

Jeśli jest to proces „Ponownie uruchom Menedżera zorientowany”, rmlogotest ponownie uruchomi go wdzięcznie i powie „Sprawdzono poprawność logo”. Inaczej, rmlogotest poprosi go, aby z wdziękiem zakończył działanie, a następnie może poinformować Cię o „Niepowodzenie sprawdzania logo”

Próbowałem użyć rmlogotest.exe zakończyć Notatnik i działał zgodnie z oczekiwaniami. Notatnik zapytał mnie, czy chcę zapisać niezapisany tekst, który wprowadziłem.

(W przypadku, gdy zastanawiasz się, co to jest Restart Manager, i pozwól mi wyjaśnić. Restart Manager jest częścią systemu Windows i jest używany przez Instalatora Windows w wersji 4.0 lub nowszej. Gdy Instalator Windows musi nadpisać lub usunąć otwarty plik, używa trzy- Mówi Restart Managerowi, aby z wdziękiem zakończył proces, który korzysta z pliku, zastępuje plik, a następnie informuje Restart Manager, aby ponownie uruchomił proces.)

unforgettableid
źródło
0

GnuWIN32 ma porty Windows typowych linuxowych narzędzi, w tym kill.exe

http://gnuwin32.sourceforge.net/

Obsługuje następujące sygnały według nazwy lub numeru

λ kill -l                                                                                                                                                                                                                                                                
INT                                                                                                                                                                                                                                                                      
ILL                                                                                                                                                                                                                                                                      
FPE                                                                                                                                                                                                                                                                      
KILL                                                                                                                                                                                                                                                                     
SEGV                                                                                                                                                                                                                                                                     
TERM                                                                                                                                                                                                                                                                     
CHLD                                                                                                                                                                                                                                                                     
ABRT             
teknopaul
źródło