Консультация № 141366
13.08.2008, 09:45
0.00 руб.
0 13 1
Здравствуйте, ув. эксперты!
Подскажите пожалуйста, как из командной строки выгрузить программу(закончить ее работу)? То есть чтобы результат был аналогичен нажатию правой кнопки мыши на значок программы в трее и выбора пункта ВЫХОД.
Программа запущена не как служба.
WinXP HE.

Обсуждение

Неизвестный
13.08.2008, 09:53
общий
Пуск-Выполнить-taskmgr.exe (Пуск-Выполнить-cmd-taskmgr.exe)
На вкладке процессов завершаете задачу.
Неизвестный
13.08.2008, 10:29
общий
Janpit: Это я и сам знаю. Мне нужно завершение процесса именно из командной строки, без лишних телодвижений.
давно
Модератор
137394
1850
13.08.2008, 10:43
общий
Вариант решения для конкретной программы (если её имя и откуда она запускалась, известно) был мной изложен в ответе на вопрос 126272. Написан скрипт, на него можно сделать на рабочем столе значок, и одним движением "убить" программу. Но и способ, который Вы и сами знаете, и предложенный мной плох тем, что это "убийство" программы не сохраняет данные так же, как корректный штатный выход из программы, предусмотренный её разработчиком.
Позволю себе процитировать ответ на вопрос 126272

Для примера взял программу "блокнот", т е Notepad.exe. В приложении смотрите скрипт, который убивает все запущенные блокноты и стартует его заново.
Скопируйте его, всавьте его в любой текстовый редактор (блокнот, например), сохраните как файл с расширением .js , например, kuku.js. Далее запускаете его как нормальный исполняемый файл (.bat, .exe, .com и т д). Это стандартное для Windows средство, дополнительно ничего ставить не надо. Можете на него значок сделать.

При ответе использовал и настоятельно советую книгу
А.Попов "Windows Script Host для Windows 2000/XP"
Санкт-Петербург "БХВ-Петербург" 2003

Текст скрипта:

var Program='"Notepad.exe"'; //Экзешника программы без пути
var ProgPath='"C:\\Windows\\system32\\notepad.exe"' //Экзешнк программы с путем

var WMI,SQuery,Processes,Process;
var WshShell=WScript.CreateObject("WScript.Shell");

try {WMI=GetObject("winMgmts:");}
catch (e)
{
if (e !=0)
{
WshShell.Popup('Ошибка соединения WMI',0,'Закрытие программы '+Program,16);
WScript.Quit();
}
}

SQuery='Select *From Win32_Process Where Name='+Program;
Processes=new Enumerator(WMI.ExecQuery(SQuery));

while (!Processes.atEnd())
{
Process=Processes.item();

try {Process.Terminate();}
catch (e)
{
if (e !=0)
{
WshShell.Popup("Ошибка закрытия экземпляра процесса",0,"Закрытие программы "+Program,16);
WScript.Quit();

}
}
Processes.moveNext();
}

SQuery = WshShell.Run(ProgPath,1,false);

Примечание:
Если прогу перезапускать не надо, последнюю строку в скрипте надо удалить.
Кстати, в форуме вопроса приведен также и скрипт на VBS.
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
13.08.2008, 12:31
общий
это ответ
Здравствуйте, R_Zone!

taskkill
подробности в справке Windows
давно
Модератор
137394
1850
13.08.2008, 13:00
общий
Для white. Классная команда! Но работает начиная с Win XP (в Win 2000 её еще нет)
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
13.08.2008, 13:29
общий
Автору вопроса нужно для WinXP HE (см. вопрос)
Неизвестный
13.08.2008, 17:42
общий
megaloman!
Спасибо!
Просто отлично.
Неизвестный
13.08.2008, 17:46
общий
to R_Zone

а Taskkill чем не устроил?
Неизвестный
13.08.2008, 17:52
общий
white
Видимо скрипт в командной строке легче писать...;)
именно из командной строки, без лишних телодвижений

Просто вопрос плохо сформулирован. Никто тут не виноват.
давно
Модератор
137394
1850
13.08.2008, 18:43
общий
для White. Вы правы, вопрос поставлен для XP. Штатной командой наверняка лучше, но и скрипт надо всего лишь скопировать в файл и потом запускать откуда угодно.
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
14.08.2008, 10:57
общий
Для white: taskkill в WinXP [u] HE [/u] нет. А скрипт через батник запустил, да еще сделал .VBS-скрипт, чтобы окно батника не вылезало на экран - чертовски удобно.
Можно потом будет попробовать один совет - взять из PRO-версии TASKKILL.EXE.
давно
Модератор
137394
1850
14.08.2008, 21:57
общий
А зачем скрипт из батника запускать ? В чем проблема? И чем VBS лучше JS
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
Неизвестный
15.08.2008, 10:43
общий
Для megaloman: .VBS-скрипт запускает батник (скрипт нужен для того, чтобы окно батника не вылезало никуда, его вообще нигде при этом не видно), батник запускает кучу всего, в том числе и Ваш .JS-скрипт. Вся эта катавасия нужна для автоматического выполнения ряда операций без вмешательства пользователя (причем пользователя самого простого, не меня).
Форма ответа