Показать полную графическую версию : [решено] Завершение программы из командной строки
Здравствуйте.
Нужно из батника завершать программу.
tskill <название процесса> работает, но не завершает корректно программу.
Т.е. сама программа при обычном завершении формирует лог, а при убийстве процесса этого не делает.
Спасибо.
Petya V4sechkin
23-09-2009, 14:31
Severny, вместо tskill taskkill, причем без опции /F
taskkill /IM notepad.exe
Petya V4sechkin,
Спасибо. Блокнот завершается отлично.
Мое приложение нет (
Подсказали скрипт, что-то мне не удается связать (
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "ics.exe"
WScript.Sleep 1000
WshShell.SendKeys "q"
WScript.Sleep 1000
WshShell.SendKeys "~"
Petya V4sechkin
23-09-2009, 15:50
Severny, как-то так:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate "Internet Casino Cash"
WshShell.SendKeys "%{F4}"
Petya V4sechkin,
Ну я же знал, что найду ответ на ЭТОМ форуме )
Один момент.
Если вдруг программа закрыта, то выскакивает окошко завершения работы (ну Alt+F4).
Нельзя ли какой-то параметр if, чтобы Alt-F4 не выполнялся, если не обнаруживается работающая программа.
Petya V4sechkin
23-09-2009, 17:03
Set WshShell = WScript.CreateObject("WScript.Shell")
If WshShell.AppActivate("Internet Casino Cash") Then
WshShell.SendKeys "%{F4}"
End If
megaloman
23-09-2009, 21:30
Вот скрипт, который убивает процесс. Он не связан с посылкой в буфер никаких имитаций нажатия клавиш. Если запущено несколько одинаковых процессов, убивает все. Для примера взял far.exe, который переспрашивает, надо ли завершать программу или нет. Скрипт убивает его без вопросов. Хоть десять штук за раз. WhatKill = "Far.exe" ' Что хотим убить. Если запущено несколько экземпляров, убьём всё
Set WMI = GetObject("winMgmts:")
iSQL = "Select * From Win32_Process Where Name=""" + WhatKill + """"
Set Proc = WMI.ExecQuery(iSQL)
For Each iProc In Proc
iProc.Terminate
Next
Спасибо, но..
убить я и tskill могу, а надо завершить. При убийстве процесса программа не делает нужного лога, который она делает при завершении.
megaloman
23-09-2009, 22:52
Извините, я невнимательно вчитался в проблему :tomato2:
FragMaster
12-04-2013, 09:40
Приведенные в теме скрипты срабатывают (по крайней мере у меня) только тогда, когда Аутлук НЕ свернут в трей (где часы).
Можно ли как-ньть изменить данный скрипт, чтобы он закрывал Аутлук, свернутый в трей?
Такой скрипт тоже срабатывают только когда АутЛук НЕ свернут в трей:
Set objWord = CreateObject("Word.Application")
Set colTasks = objWord.Tasks
'нужно знать название окна
If colTasks.Exists("Outlook") Then
colTasks("Outlook").Close
End If
objWord.Quit
PS: WIn 7x64 sp1 Outlook 2010
FragMaster, для Microsoft Outlook есть правильный способ:
On Error Resume Next
GetObject(, "Outlook.Application").Quit
Сработает ли для «Microsoft Outlook 2010» — не знаю, проверьте и отпишитесь.
Georgio, Вы на дату процитированного Вами поста обратили внимание?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.