Похожие вопросы

Microsoft Camera Codec Pack не работает в Windows 7
Windows 7-64bit OS-открывает java.exe всегда в отдельной командной строке
Paint for Windows seven 64 bits: как изменить формат сохранения по умолчанию с png на jpg [дубликат]
Можно ли изменить переменную среды PATH в Windows 7 без перезапуска?
Включение ноутбука в определенное время?
Не удается синхронизировать iPod Touch с компьютером
Как открыть файл EPS в GIMP 2? "Не смог интерпретировать PostScript-файл "
Не является приложением Win32 на 64-разрядном компьютере
Cisco VPN Client + RSA Secure ID Token на 64-разрядной ОС Windows 7
Что означает "ошибка области калибровки мощности", когда я пытаюсь написать DVD
В чем разница между 32-разрядной и 64-битные программы в Windows
программы DevCon.exe не работает в системе Windows7 x64
Thunderbird дает предупреждение "недостаточно места на диске", после попытки загрузить больше писем (Win 7, 64 бит)
Регистрация dll-файла в Windows 7 x64
Почему мое 32-битное соединение ODBC не отображается в odbcad32.exe?

Как использовать TASKKILL для 32-разрядных приложений в 64-разрядной среде Windows?

когда пользователь запускает 32-разрядное приложение .Net в 64-разрядной среде, в диспетчере задач отображается с другим именем.

например, если мое имя приложения-это Shipnet.Shell.exe в диспетчере задач он отображается SH7910~1.exe*32. Из-за этого изменения имени не удается выполнить команду TASKKILL.

Как я могу получить правильное имя с TASKKILL?

некоторые справочная информация:

мы имеем продукт наследия начатый в проявителе 4.2 команды Centura (Gupta Sql Windows).
Из нашего устаревшего продукта мы можем вызывать 32-разрядные приложения .Net. Мой продукт очень огромный и имея сотни приложений, разработанных в Центура и .Чистая. Пользователь может запускать несколько приложений из главного меню (Центура и .Нетто). Есть меню Выход в Главное меню. Когда пользователь нажимает это меню, наш продукт закрывает все приложения Centura и .Net.
Centura позаботится о своем собственном применении в заключительном процессе. Мы используем команду TASKKILL, чтобы закрыть все приложения .Net запущенный из нашего продукта. Это прекрасно работает с 32-разрядной средой Windows. Когда мы развертываем то же самое в 64-разрядной среде Windows, наш продукт не в состоянии закрыть приложения.Net. Причина в том, что команда TASKKILL не может получить правильное имя приложения.

5
задан Arjan
источник

2 ответов

можно использовать TASKLIST чтобы получить PID по заголовку окна, имени процесса или другим критериям, таким как:

tasklist /FI "WINDOWTITLE eq notepad"

это будет список всех процессов, из которых имя окна равна "Блокнот".

пример:

C:\windows\system32>tasklist /FI "WINDOWTITLE eq Untitled - Notepad"

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
notepad.exe                   1876 Console                    1      7,156 K

доступные фильтры:

Filters:
    Filter Name     Valid Operators           Valid Value(s)
    -----------     ---------------           --------------------------
    STATUS          eq, ne                    RUNNING |
                                              NOT RESPONDING | UNKNOWN
    IMAGENAME       eq, ne                    Image name
    PID             eq, ne, gt, lt, ge, le    PID value
    SESSION         eq, ne, gt, lt, ge, le    Session number
    SESSIONNAME     eq, ne                    Session name
    CPUTIME         eq, ne, gt, lt, ge, le    CPU time in the format
                                              of hh:mm:ss.
                                              hh - hours,
                                              mm - minutes, ss - seconds
    MEMUSAGE        eq, ne, gt, lt, ge, le    Memory usage in KB
    USERNAME        eq, ne                    User name in [domain\]user
                                              format
    SERVICES        eq, ne                    Service name
    WINDOWTITLE     eq, ne                    Window title
    MODULES         eq, ne                    DLL name

затем вы можете использовать taskkill и укажите PID.

TASKKILL /PID 1230 /PID 1241 /PID 1253 /T

/t завершает процессы и ее ребенка, /PID указывает идентификатор процесса.

если у вас есть PowerShell можно использовать Stop-Process <pid> (например,Stop-Process 3512) или Stop-Process -processname notepad

дополнительная информация здесь по команде Stop-Process.

было бы очень полезно, если бы вы указали имя ОС, на котором вы столкнулись с проблемой, это очень необычно, что имена усекаются в стиле DOS в 64-битных операционных системах!

4
отвечен Gizmo 2013-08-14 10:34:13
источник

У меня похожая проблема. 32-битный процесс отказывается умирать. Я найду ее задач в процессе 8152. Это следующие шаги:

C:\Users\Smurf>ошибка taskkill /pid 8152 / t: не удалось завершить процесс с PID 8152 (дочерний процесс PID 7788). Причина: Toegang geweigerd.

C:\Users\Smurf>ошибка taskkill / pid 7788 / T: процесс "7788" не найдено.

Toegand geweigerd- "доступ запрещен". Я дал себе все право так процесс в ProcExp. Интересно, как убить этот нежелательный процесс....

0
отвечен user718960 2014-03-27 19:06:40
источник

Другие вопросы 64-bit task-manager windows