Windows xp запуск программы при выключении

Обновлено: 07.07.2024

Просто фоновый режим (без окна), но без перенаправления в файл работает так.
start /b myprog.exe

Просто перенаправление вывода в файл, но без закрытия окна работает так.
cmd /c "myprog.exe > myfile.txt"
или
myprog.exe > myfile.txt
В любом из этих случаев .bat не заканчивает выполнения, а ждёт завершения этой команды (которая работать будет несколько часов) и не закрывает своё окно, которое зачет-то открыл.

Таким образом, для немедленного завершения .bat файла приходится использовать команду start, иначе никак. Однако команда
start /b myprog.exe > myfile.txt
будет делать не то, что нужно, так как поток перенаправится от команды start, а не от myprog.exe, как нужно.

Единственной возможностью остаётся вложить команду cmd в команду start так.
start /b cmd /c "myprog.exe > myfile.txt"
По описаниям в помощи это должно делать то, что нужно, однако почему-то окно всё равно не закрывается.

Вообще непонятно, зачем понадобилось открывать окно по умолчанию и создавать такие сложности, чтобы его специально закрыть. В OS Linux всё наоборот. По умолчанию окна нет, если оно нужно, то отдельной опцией это указывается. В OS Linux требуемое действие делается очень просто так.
myprog > myfile &

У каждой из этих двух команд есть преимущества и недостатки, но сделать то, что нужно не получается даже комбинируя их.

Ещё хочу заметить, что очень глупо открывать консольное окно при выполнении программы и не закрывать его, так как оно не всегда нужно. В моём случае закрытие окна вручную не приводит к завершению работы запущенной программы, а просто создаёт пользователю лишние трудности по закрыванию окна. Нужно избавить пользователя от ненужной работы.

Я уже долго мучался сам, советовался с друзьями, но никто не может помочь. Обращаюсь теперь к вам в надежде, что фирма Microsoft всё же лучше знает, как использовать возможности её командной строки для достижения нужного результата. Если ВЫ не поможете, больше обращаться мне не к кому. Это ВАШ программный продукт, всё что можно почерпнуть из помощи по этим командам, я прочитал, но там практически нет ничего нужного.

Помогите, пожалуйста, написать одну строку с командой, но правильно, чтобы она делала то, что нужно. Заранее спасибо.

Сохранение данных перед выключением компьютера
Всем доброго времени суток! Как перед перезагрузкой или перед выключением компьютера сохранить.

Как сделать запуск перед перезагрузкой или выключением?
Что можно сделать чтобы прога запускалась перед перезагрузкой или выключением компа.

Пуск->Выключение. нужно добавить команду перед выключением
как сделать, чтобы при нажатии на кнопку сначала выполнялась команда, затем выключался сам.

C++ Выполнение команд
Суть задачи вот в чем: программа должна выполнять команды, прописанные в файле или переменной. .

Пуск – Все программы – Стандартные – Служебные – Назначенные задания. Смотрел уже и где же пункт "выполнить перед выключением "

Использовать Планировшик событий Windows.
Перехватываем System Event Log уведомления от источника User32.
Журнал событий - Система - код 1074 источник User32.
*********************************************************
Настраиваем тригеры Задания:
Начать задачу: При событии
Параметры - Простое
Журнал: Система
Источник: USER32
Код события: 1074

Вопрос: а если мне нужно выполнить действие Разово? Т.е. нужно добавить (в Планировщик, в реестр - неважно) команду, которая после срабатывания обнулится (самоуничтожится). Как ключ в RegEdit Runonce. Т.е. для разового Запуска.
Для чего это нужно: Пользователь (бестолковый пользователь, надо сказать) иногда перед выключением ПК должен выполнить определённую задачу, например скопировать файлы на другой ПК (с помощью bat-файла). А иногда этого делать не нужно - об этом оговаривается заранее. Беда в том, что человек частенько забывает о том, что его просили.
А тут - сразу щёлкнул по ярлыку, задание (разовое) создалось, продолжаем спокойно работать дальше. Будет выключать ПК - Windows "сама" произведёт нужные действия.
Как бы сие реализовать? Если Windows получила команду "stop-computer" - выполнение каких либо действий невозможно.
Можно реализовать через батник, или скрипт где сначала будет выполняться действие а потом выключение пк.
Батник:
@echo off
start "" "C:\Program Files\USB Relay\usb-relay.exe"
powershell "stop-computer"
Как то так Если Windows получила команду "stop-computer" - выполнение каких либо действий невозможно. Не совсем понял, о чём речь?
Есть же возможность выполнения сценария (запуск любой программы или какие иные действия) перед выключением ПК. Всё, что мне нужно, это:
1. Добавление этой функции в 1 клик (батник, скрипт, программа - не важно)
2. Разовость действия. Т.е. после использования (отработки) задание удаляется. Например, через бат-файл - выполнился вызов программы копирования файлов (пусть хоть через ещё один батник), задание удаляется.

Программа осуществляет напоминание по завершении работы Windows.

Текстовой файл (напоминание), должен быть в каталоге программы.

Повторный запуск программы - отмена назначенного.

На снимке, изображена проверка.

Я немецкий учил поэтому и на оснуху бывает проруха.

1. Исправлено имя
2. Добавлен переключатель, чтобы не только при перезагрузки останавливало

osnu,
Здорово! Программа - класс! Правильно ли я понял, что.
Программа не "висит" в памяти, а формирует некую задачу для компа, которая и будет выполняться (до отмены)?
Т.е. если не запускать программу ещё раз (отмена назначенного), то в следующей сессии Windows при выключении появится опять тоже напоминанание (разумеется, при отсутствии изменений внешних условий).

Данная программа находится в памяти, окно, просто - скрыто, ресурсов использует
как открытый блокнот незаполненный текстом.

Вот краткое описание.

Перед завершением работы компьютера операционная система дает всем программам и службам, запущенным в данный момент, приказ на сохранение своих данных и завершение работы. После этого операционная система ожидает некоторое время, пока не будут завершены все программы и службы. Если в течение этого времени какая-то программа или служба не завершила свою работу, эта программа или служба считается зависшей. По умолчанию операционная система не пытается автоматически завершить работу зависшего процесса. Вместо этого она выводит для пользователя диалог, в котором говорится, что определенная программа или служба не отвечает, и пользователю задается вопрос, что же необходимо делать дальше — либо в принудительном порядке завершить работу зависшей службы или программы, либо подождать некоторое время, пока она сама завершит свою работу.

Если данный диалог выводится очень редко, то с ним еще можно смириться. Но если он выводится практически при каждом завершении работы системы? Тогда реестр Windows позволяет задать для завершения работы системы режим автоматического завершения работы зависших программ. В этом случае, если какая-то программа или служба не отвечает в течение 20 секунд, которые будут даваться на завершение работы процессов, то работа зависшей программы будет завершаться автоматически. При этом следует учитывать, что, поскольку выполняется принудительное завершение работы процесса, существует вероятность, что все данные, которыми в это время оперировал зависший процесс, будут утеряны.

Чтобы заставить операционную систему при выходе автоматически завершать работу процессов, которые не завершили свою работу в течение определенного времени (по умолчанию 20 секунд), необходимо присвоить параметру строкового типа AutoEndTasks значение 1. Он расположен в ветви реестра HKEY_CURRENT_USERControl PanelDesktop.

Если значение параметра AutoEndTasks равно 1, то можно определить значение еще нескольких параметров, которые влияют на процесс автоматического завершения работы программ и служб. К ним можно отнести следующие параметры строкового типа.

? HungAppTimeout — определяет интервал времени (в миллисекундах), в течение которого программа должна ответить на запрос системы. Если в течение этого времени программа не ответила на запрос, то она считается зависшей. Значение не используется при завершении работы компьютера — параметр предназначен для определения зависших программ в процессе работы пользователя в системе. При этом система не предпринимает никаких действий по завершению работы зависшей программы, даже если значение параметра AutoEndTasks равно 1.

Параметр расположен в ветви реестра HKEY_CURRENT_USERControl PanelDesktop. По умолчанию его значение равно 5000, что соответствует интервалу ожидания ответа, равному 5 секунд. В принципе, значение данного параметра можно уменьшить до 2000, что соответствует 2 секундам. Хотя никакой функциональной разницы от этого изменения не будет — просто на три секунды раньше программа станет считаться зависшей. При этом если программа все-таки ответит на запрос системы, то она опять станет считаться работающей.

? WaitToKillAppTimeout — указывает интервал времени (в миллисекундах), в течение которого программа должна закончить свою работу при завершении работы операционной системы. Если программа не завершит свою работу в течение указанного интервала времени, то она будет завершена автоматически. При этом все несохранённые данные будут утеряны.

Параметр расположен в ветви реестра HKEY_CURRENT_USERControl PanelDesktop. По умолчанию его значение равно 20000, что соответствует интервалу ожидания ответа, равному 20 секунд. Этого интервала с избытком хватает на завершение работы программ при завершении работы операционной системы. Более того, если во время завершения работы операционной системы довольно редко зависают программы, то значение параметра WaitToKillAppTimeout можно уменьшить до 5000 — интервала в 5 секунд, как правило, также всегда хватает для корректного завершения работы программ.

? WaitToKillServiceTimeout — расположен в ветви системного реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl. Его значение определяет интервал времени (в миллисекундах) в течение которого служба должна закончить свою работу при завершении работы операционной системы. По умолчанию значение этого параметра равно 20000. Этого также с избытком хватает для завершения работы служб, но можно присвоить этому параметру значение, равное, например, 7 000. Ниже этого значения лучше не опускаться, ведь, как часто бывает, службы оперируют информацией, критичной для корректной работы операционной системы (тем более, большая часть служб запущена с правами системы, то есть может изменять значения многих ветвей реестра), некорректная запись которой может привести к повреждению реестра.

Автоматическое выравнивание

Автоматическое выравнивание Элемент <xsl:output> поддерживает атрибут indent который устанавливается в «yes» или «no», и указывает процессору XSLT, нужно ли выравнивать результирующий документ. Как правило, выравнивание результирующего документа не имеет большого значения,

Автоматическое создание юнитов

Автоматическое создание юнитов Зачастую бывает проблематично или неудобно вручную создавать весь список юнитов для большой сети. Для решения этой проблемы в netams–3.1(2000.204) была введена функциональность auto–units, или возможность автоматического создания юнитов при

Автоматическое обновление

Автоматическое обновление Следующее важное звено в обеспечении безопасности Windows – автоматическое обновление. Ценность своевременной установки обновлений заключается в том, чтобы избежать атаки злоумышленников через уязвимости в операционной системе. Поскольку Windows

Автоматическое обновление программ

Автоматическое обновление программ Поиск дополнительных модулей вручную — утомительное занятие, занимающее много времени. Для автоматизации этого процесса были разработаны специализированные инструментальные средства. Некоторые из них описаны ниже.• apt-get. Данная

Автоматическое обновление

Автоматическое обновление Служба предназначена для автоматического скачивания из Интернета и установки обновлений операционной системы и стандартных компонентов Windows XP. При этом сведения об уже установленных обновлениях берутся из реестра. Для этого предназначены

Проверка диска при неправильном выключении компьютера

Проверка диска при неправильном выключении компьютера По умолчанию при неправильном выключении компьютера перед запуском операционной системы проверяется состояние файловой системы жестких дисков. Настройки этой проверки также можно изменить. Например, можно

Автоматическое обновление

Автоматическое обновление Любой программный продукт постоянно дорабатывается и совершенствуется (если, конечно, он не снят с обслуживания и поддержки ввиду появления новых версий или по иным причинам). Это касается и операционной системы Windows 7: разработчики постоянно

Автоматическое обновление

Автоматическое обновление Купив последнюю версию Windows, вы покупаете не совсем последнюю версию. Пройдет совсем немного времени, и программисты компании Microsoft (или просто доброхоты-любители) обнаружат, что в системе есть уязвимость, через которую можно проникнуть на

Автоматическое дополнение слов

Автоматическое дополнение слов Средство Complete Word (Автоматически дополнить слово) редактора Visual Basic позволяет автоматически ввести практически любой VBA-термин. Активизируется это средство нажатием Ctrl +пробел. В результате на экране возникает список, наподобие

Очистка swap при выключении компьютера

Очистка swap при выключении компьютера Ключ:[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management] Значение:

1.1.2. Автоматическое форматирование

1.1.2. Автоматическое форматирование Программисты, привыкшие работать в интегрированной среде разработки, оценят имеющиеся в Emacs средства автоматического форматирования кода. При открытии исходного файла, написанного на C/C++, редактор самостоятельно определяет наличие в

Автоматическое заполнение форм

3.2. Главное меню. Завершение работы компьютера

3.2. Главное меню. Завершение работы компьютера 3.2.1. Меню Пуск В более ранних версиях Windows главное меню называлось меню Пуск, поскольку для его открытия использовалась кнопка с надписью «Пуск». Начиная с Vista, надпись «Пуск» исчезла с кнопки открытия меню, а вместо нее

Автоматическое обновление

Автоматическое обновление Современные операционные системы – сложные программные продукты, и хакерам удается найти их слабые места, позволяющие получить контроль над компьютером. Когда об этом становится известно программистам из Microsoft, выпускается обновление

Автоматическое обновление ключей

Автоматическое обновление ключей Сертификат имеет ограниченный срок действия, который устанавливается в зависимости от возможностей современных криптографических алгоритмов и используемых длин ключей, а также с учетом практических соображений (например, объем

Вам нужно, чтобы при каждом старте Windows сразу же запускалось определенное приложение? Сделать желаемое очень просто: надо всего лишь перетащить при нажатой правой кнопке мыши EXE-файл данного приложения или ярлык

для этого файла в папку «Автозагрузка» (C:Documents and SettingsИмя пользователяГлавное менюПрограммыАвтозагрузка) и указать опцию «Создать ярлыки». Когда вы в следующий раз запустите Windows, выбранная программа будет загружаться автоматически. Но вот как быть с проверкой на вирусы, созданием резервных копий, дефрагментацией жесткого диска и другими регулярно выполняемыми задачами по поддержанию компьютера в порядке? Вы же не захотите ждать завершения их работы при каждом запуске Windows?


Имеющаяся в Windows функция «Назначенные задания» может запускать перечисленные выше процессы в то время, когда вы не пользуетесь компьютером, — правда, лишь при условии, что он постоянно включен. Если же вы предпочитаете для экономии электроэнергии ежедневно выключать ПК, то дайте Windows указание выполнять все эти рутинные работы перед отключением компьютера. А еще лучше — сделайте специальную «выключательную» папку, содержимое которой вы будете изменять по своему усмотрению, зная, что программы из нее Windows запустит при отключении.

Кстати, таким образом вы «отвадите» приложения, без спросу начинающие работать при каждом запуске системы, постоянно вставляя себя в Реестр Windows. Так что сначала я расскажу, как добавить к Windows «выключательную» папку, не покупая никакого дополнительного ПО, а потом как создать файл Реестра, позволяющий вычищать нежелательные элементы всякий раз, когда вы выключаете систему.

Сперва создайте «выключательную» папку. Причем имейте в виду, что запуск программ из какой-либо папки при выключении системы происходит только при работе в среде Windows 2000 и XP, и потому пользователи Windows 98 и Me могут пропустить данный этап и сразу обратиться к последующим инструкциям, относящимся к запуску программ при выключении.

Чтобы разместить «выключательную» папку вместе с папкой «Автозагрузка», щелкните правой кнопкой мыши на кнопке «Пуск», а потом на позиции «Открыть». Дважды щелкните на папке «Программы», после чего укажите «Файл? Создать?Папку». Дайте новосозданной папке имя «Выключение» (или Shutdown) и нажмите . Затем снова нажмите , чтобы открыть эту папку, и заполните ее ярлыками тех программ, которые вы хотели бы видеть выполняемыми при выключении. Для этого при нажатой правой кнопке мыши перетащите в нее значки соответствующих программ из любого меню или окна папки, а потом выбирайте опцию «Создать ярлыки» (в Windows XP) или «Копировать» (в 2000).

Поскольку программы будут запускаться непосредственно перед отключением питания компьютера, то вводите в папку лишь те утилиты и исполняемые файлы, которые автоматически отключаются или прекращают выполнение задач по окончании работы (рис. 1).

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

Регламентные работы при выключении

Теперь создайте исполняемый файл для запуска этих приложений и выключения компьютера. Для этого выберите «Пуск?Программы («Все программы» в Windows XP)? Стандартные?Блокнот». Первые три строки исполняемого файла, которые будут запускать приложения, указанные в папке «Выключение», относятся лишь к Windows 2000 и XP. В начальной строке укажите dir /b и приведите путь к папке «Выключение» (с кавычками, если этот путь содержит пробелы или длинные имена папок). Затем в ней же введите пробел и знак > (символ «больше»), после чего укажите путь к той папке, где будет храниться исполняемый файл, и, наконец, наберите имя исполняемого файла, содержащего перечень приложений, выполняемых при выключении системы. Чтобы узнать путь, просто откройте соответствующую папку в Проводнике и загляните в строку «Адрес». (Если же таковой строки не обнаружится, задайте в Проводнике опции «Сервис?Свойства папки? Вид?Выводить полный путь в строке заголовка».) Ключ /b в команде dir заставляет ее перечислять только имена файлов, без всякой дополнительной информации. В результате первая строка в вашем исполняемом файле будет выглядеть, например, следующим образом: dir /b «C:Documents and SettingsВаше имя в системеГлавное менюПрограммыВыключение» > «c:atch un_it.bat» (где run_it.bat — возможное имя исполняемого файла; пути, конечно, могут быть и другими).

Во второй строке введите cd /d и опять же укажите путь к каталогу, содержащему папку «Выключение». (Ключ /d гарантирует, что в экранном приглашении будет указан правильный диск.) Вторая строка может выглядеть, в частности, так: cd/ d «C:Documents and SettingsВаше имя в системеГлавное менюПрограммы Выключение».

Следующая строка запускает исполняемый файл; например, она принимает такой вид: call c:atch un_it.bat — опять же, возможно, с другим путем.

Во всех версиях Windows добавьте по строке для каждой утилиты, которую вы хотите запускать и для которой в вашей папке «Выключение» нет соответствующего ярлыка. В Windows 98 и Me подобное указание является вообще единственным способом заставить программы запускаться непосредственно перед закрытием Windows. Так, в исполняемом файле может иметься строка наподобие c:windowsscandisk.exe c: d: /n (естественно, приложения и варианты командных строк могут отличаться). Если вы вносите в исполняемый файл утилиты Windows, автоматически заканчивающие работу по завершении программы, то добавьте в начале соответствующих строк команду start /w, особенно если решение задачи требует ощутимого времени. Ключ /w означает, что в исполняемом файле перед переходом к следующей строке будет сделана пауза, и она продлится до тех пор, пока запущенное приложение не закончит работу.

По окончании создания исполняемого файла окно Блокнота будет выглядеть примерно так, как это изображено на рис. 2.

Остановка автоматически загружаемых приложений

К сожалению, отдельные приложения (такие как QuickTime for Windows) восстанавливают свои команды автоматической загрузки всякий раз при модернизации или даже просто запуске приложения. Чтобы вычищать их автоматически, вам надо сперва отредактировать соответствующий ключ в составе Реестра Windows. Выберите «Пуск?Выполнить», введите команду regedit и нажмите . Отправляйтесь к папке (ключом на жаргоне Реестра называется папка), содержащей команду, которая запускает приложение. Программа Startup Control Panel может показать, где эту папку искать, но наиболее вероятные места — HKEY_ CURRENT_USERSoftware MicrosoftWindowsCurrentVersionRun и HKEY _LOCAL_MACHINESOFTWARE MicrosoftWindowsCurrentVersionRun. Модуль QuickTime Task, например, использует последний ключ.

Выделив ключ в дереве, отображаемом на левой створке, выберите опции «Реестр?Экспорт файла реестра» или «Файл?Экспорт» (в зависимости от версии Windows). Отправляйтесь к своей папке резервных копий, убедитесь в том, что в разделе «Диапазон экспорта» указана «Выбранная ветвь», дайте экспортному файлу какое-нибудь имя и щелкните на кнопке «Сохранить» (рис. 3).

Вернувшись обратно в Реестр, снова выберите команду «Экспорт», но на этот раз укажите папку для сохранения модифицированной версии, которую вы сможете использовать для удаления нежелательных программ из папки «Автозагрузка». Если вы планируете делать это с помощью исполняемого файла (типа описанного выше), то можете сохранить эту версию файла Реестра в той же папке, где лежат ваши исполняемые файлы. Опять же убедитесь, что указана «Выбранная ветвь», и щелкните на «Сохранить».

Откройте Проводник и найдите значок только что созданного экспортного файла. Щелкните на нем правой кнопкой мыши и выберите опцию «Изменить». Не вносите никаких изменений в верхнюю строку, пустую строку под ней и следующую заголовочную строку, где будет указана ветвь Реестра в квадратных скобках. Под этим заголовком в верхних кавычках будут перечислены имена приложений. Найдите строку, соответствующую тому приложению, команду автозагрузки которого вы собираетесь удалить. Оставьте эту строку нетронутой до знака равенства (=), а после него все удалите и сразу же за знаком равенства напечатайте дефис. Например, если вы уничтожаете команду автозагрузки QuickTime Task, то получится строка вида «QuickTime Task»=-. Повторите такие действия для всех приложений, чей запуск совместно со стартом Windows вы собираетесь предотвратить.

Наконец, удалите все остальные строки, расположенные под заголовком в квадратных скобках. Когда вы все закончите, то должны остаться только две заголовочные строки наверху (отображающие версию Реестра и ветвь в квадратных скобках) и по одной строке для каждого приложения, поведение которого вы решили модифицировать (рис. 4). Выберите «Файл?Сохранить» для сохранения своего отредактированного REG-файла.

Дважды щелкните на значке полученного файла экспорта Реестра и следуйте экранным указаниям, чтобы предотвратить запуск нежелательных приложений вместе с Windows. Для создания автоматически реагирующего ярлыка щелкните правой кнопкой мыши внутри нужной папки (наподобие папки «Выключение», организованной вами на предыдущем этапе) и выберите «Создать?Ярлык». В первую графу Мастера создания ярлыков введите последовательность regedit /s с последующим пробелом и указанием пути к вашему модифицированному REG-файлу. Так, если вы храните этот файл в C:Windows Batch, то строка в первой графе должна выглядеть следующим образом: regedit /s «C: WindowsBatchStartup Stopper.reg» (путь может быть и другим). Кавычки необходимо использовать тогда, когда путь содержит пробелы или длинные имена. Щелкните на кнопке «Далее», введите имя для ярлыка и щелкните на «Готово».

Scott Dunn. Make Windows Start and Stop the Way You Want. PC World, июнь 2004 г., с. 160.

Читайте также: