Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Закрыть программу program.exe (http://forum.oszone.net/showthread.php?t=230153)

XXXp 12-03-2012 20:20 1877886

Закрыть программу program.exe
 
Как с помощью любой категории скриптов закрыть программу program.exe (допустим c:\program.exe), чтобы она закрылась как через крестик, а не TASKKILL и аналогичные способы? Спасибо за ответы!

XXXp 12-03-2012 20:54 1877910

и в догонку, подскажите пожалуйста, как наоборот: закрыть (обычным способ, не taskkill) все программы, кроме c:\program.exe. Спасибо!

Iska 12-03-2012 21:29 1877934

Цитата:

Цитата XXXp
чтобы она закрылась как через крестик, а не TASKKILL »

Запустите Блокнот, наберите в нём несколько символов, откройте командную строку, наберите и исполните в ней команду:
Код:

taskkill.exe /fi "ImageName eq notepad.exe"
Убедитесь, что Блокнот получил уведомление о закрытии своего окна, поскольку вывел запрос о сохранении набранного текста:
Цитата:

Код:

---------------------------
Блокнот
---------------------------
Текст в файле Безымянный был изменен.

Сохранить изменения?
---------------------------
Да  Нет  Отмена 
---------------------------


Теперь Вы должны понимать, что данная форма команды «taskkill.exe» — без принудительного закрытия (параметра «/f») — работает именно так, как Вы и хотели — «как через крестик».

Цитата:

Цитата XXXp
закрыть (обычным способ, не taskkill) все программы, кроме c:\program.exe. »

При снятии процессов некоторых системных служб операционная система будет принудительно перезагружена. Вам это надо?!

Grozniy 16-04-2014 10:29 2338737

Хочу поднять тему, поскольку нужно то же решение, но требуется немного автоматизации.

taskkill.exe /fi "ImageName eq notepad.exe" действует точно так же как будто мы нажали крестик. И верно - блокнот спрашивает сохранить ли набранный текст.

Вопрос. Как на все вопросы, возникающие при закрытии программы автоматически ответить "Да". В справке по taskkill.exe нет ничего нужного. taskkill /f - не подходит! Почему - ответ ниже.

Для тех кто любит спрашивать "А зачем тебе это надо?" сразу отвечаю. У меня стоит ночное архивирование баз 1с. Если кто то оставил программу не закрытой, то база не архивируется, потому как 1С ставит запрет на использование файлов базы любым другим процессам во время ее работы. При использовании taskkill /f /im 1cv8.exe приложение закрывается. Но запрет на использование файлов базы остается и архиватор не пакует эту базу.

При попытке закрыть программу taskkill.exe /fi 1cv8.exe 1С спрашивает, Вы уверены, что хотите закрыть программу? Вот тут-то и нужно автоматически ответить "Да".

Для тех, кто любит доколупаться.
На вопрос "А если документ поправили и не сохранили?..." Ответ - Да, сохраняем! И меня не волнует что там сделали, все равно сохраняем.

Как я понимаю taskkill не то что мне нужно. Кто подскажет как решить проблему и в какую сторону "копать"? Сразу скажу, что я не программист и хреновый администратор, поэтому определениями и жаргоном не засыпать. Подскажите человеческим языком.

Iska 16-04-2014 12:16 2338814

Цитата:

Цитата Grozniy
в какую сторону "копать"? »

В сторону 1С.

Grozniy 16-04-2014 13:12 2338856

В сторону 1С копать бесполезно, потому как в программе нет автоматического завершения работы, если пользователь не активен энное количество времени.

Хочется найти решение вроде taskkill, но более продвинутое. Может утилитки какие есть, может в bat-файле как то программку написать можно (что более предпочтительно). Главное, чтобы указанная программа корректно закрывалась.

Кстати, 1С - это частный случай. Возможно потребуется закрывать подобным образом и другие приложения. Например, тот же notepad++. Не просто его убить, а именно закрыть с сохранением данных. Благо, в отличие от стандартного блокнота, при закрытии программы и не сохраненном новом документе он название свое подставляет. Поэтому смело можно на все вопросы отвечать "Да" (Yes, Сохранить и т.д. Т.е. жать кнопку, предлагаемую по умолчанию).

Какие будут еще мысли и направления?

Iska 16-04-2014 13:21 2338861

Цитата:

Цитата Grozniy
В сторону 1С копать бесполезно, потому как в программе нет автоматического завершения работы, если пользователь не активен энное количество времени. »

Зато есть функция «ОбработкаОжидания()» (для версии 8.x аналог смотрите сами).

Цитата:

Цитата Grozniy
Кстати, 1С - это частный случай. »

В этом частном случае может быть добрый десяток сценариев для закрытия, например: открыт документ, делается выбор из справочника, в который вносится новый элемент на этапе редактирования.

Цитата:

Цитата Grozniy
Какие будут еще мысли и направления? »

Подобные моменты:
Цитата:

Цитата Grozniy
Если кто то оставил программу не закрытой, »

должны решаться прежде всего административными мерами.

Grozniy 16-04-2014 13:39 2338871

Цитата:

Цитата Iska
Зато есть функция «ОбработкаОжидания()» »

Спасибо за на водку :) Однако, как я написал изначально - "...я не программист и хреновый администратор". Что касается 1С возможен и такой выход. С этим я попробую покапаться. Может чего и придумаю.

Цитата:

Цитата Iska
...решаться прежде всего административными мерами. »

И это правильно, но... До всех не достучишься. То на автобус опаздывают, то ждать лень, пока обработка закончится, то отвлекли и забыл, то еще что нибудь... В общем, как всегда у нас. Начнут вспоминать и понимать, что нужно все закрывать перед уходом только после того, когда понадобится срочно откатиться, а архива нет! Правда, опять не на долго. Но очень не хочется, чтобы такое получилось. Поэтому думаю как обезопасить себя.

Iska 17-04-2014 16:24 2339520

Grozniy, решается очень просто. «Ночное архивирование» — стало быть при отсутствии нонешнего архива в случае сбоя коту под хвост уйдёт день работы. Берёте число регулярных пользователей данной базы, считаете затраты предприятия на их суммарное функционирование в течение рабочего дня (хотя бы и по минимуму — по заработной плате), затем с полученной суммой идёте к руководству и озвучиваете во что выливаются:
Цитата:

Цитата Grozniy
То на автобус опаздывают, то ждать лень, пока обработка закончится, то отвлекли и забыл, то еще что нибудь... »

и с поимённым списком «забывчивых» и «нетерпеливых» с раскладкой по дням. Итоговая цифра максимально возможных убытков на ровном месте получается простым перемножением одного на другое. Поверьте, если от нашего «Вот если вдруг случится, то…» руководство (которое зачастую очень далеко от разных «компьютерных» дел), как правило, отмахивается, то на цифры, особливо подтверждённые обоснованными расчётами, реагирует достаточно предсказуемо.

Start 29-07-2014 14:01 2382728

Код:

taskkill /F /IM Menu.exe
Подскажите пожалуйста, как в Windows 98 можно сделать так-же, чтобы программа закрывалась?

Iska 29-07-2014 14:47 2382764

Так же — никак нельзя. Ищите какое-нибудь стороннее приложение, работающее под Win9x.


Время: 18:40.

Время: 18:40.
© OSzone.net 2001-