Как запустить windows приложение windows

Обновлено: 04.07.2024

Продукты Microsoft Windows, как правило, являются обратно совместимыми. Это значит, что новая система Windows имеет возможность запуска ПО, написанного для непосредственного предшественника. Например, Windows 7 корректно работает с программами для Vista.

Подавляющее большинство программ, которые запускаются на Windows 7 и Windows 8 будут работоспособны и на Windows 10, за исключением Windows Media Center, чья поддержка полностью отсутствует. Некоторые программы, разработанные для более старших версий Windows также могут беспроблемно работать в Windows 10. Для запуска других видов ПО потребуется сделать дополнительные манипуляции.

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

Windows 10: старые игры Sim City

Если Вы используете старый компьютер, на нем могут быть установлены устаревшие файлы и программы. Например, это могут быть старые файлы Microsoft Word или старые игры Sim City или Oregon Trail. Возможно, Вы откладываете обновление пакета Microsoft Office, потому что Вам нравится пользоваться текущей версией ПО. Независимо от причины, вам нужно убедиться в возможности их запуска, если Вы хотите использовать их в Windows 10. Обновление ОС может привести к том, что файлы невозможно будет прочитать, и Вы потеряете доступ к ним.

Microsoft предлагает инструмент для проверки совместимости для пользователей, которые хотят выяснить, откроются ли их файлы и программы в Windows 10. Заинтересованные пользователи могут зайти на сайт Центр совместимости Windows, чтобы узнать наверняка.

Рисунок 1. Отчет инструмента проверки совместимости

Веб-страница предлагает возможность просканировать компьютер и подключенные устройства, чтобы выяснить, будет ли содержимое доступно в Windows 10.

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

Как и предшественники, Windows 10 имеет режим совместимости для запуска программ, разработанных для старых версий ОС. Данная опция доступа при вызове контекстного меню конкретного объекта правой кнопкой мыши и выборе пункта “Свойства”, а затем вкладки “Совместимость”.

Для запуска файла можно использовать эмуляторы различных версий ОС. На Windows 7 данная функция позволяла запускать программы, разработанные для Windows 95. Подобные утилиты 20-летней давности еще бывают популярны среди энтузиастов Windows.

Запуск приложения в режиме совместимости всегда было очень простой операции. На вкладке “Совместимость” окна “Свойства” активируйте опцию “Запустить программу в режиме совместимости с” и из выпадающего списка выберите необходимую версию ОС.

Windows 10 совместима с ПО для виртуализации Microsoft Virtual PC, которое позволяет пользователям запускать несколько версий Windows. Данный бесплатный инструмент позволяет запускать программы, разработанные для Windows XP и выше, поэтому шансы запустить несовместимое с Windows 10 ПО велики.

Установить инструмент можно из центра загрузки продуктов Microsoft. Скачайте и загрузите его. Примите лицензионное соглашение, если Вы хотите продолжить. Можете оставить настройки, рекомендуемые программой-установщиком, а можно настроить параметры самостоятельно.

Другой возможностью является установка на компьютере виртуальной версии старой системы. В этом случае можно создать файловую версию старой ОС в одном файле на компьютере. Этот способ отличается от установки нескольких операционных системы, когда они устанавливаются на том же жестком диске, разделив его.

Преимуществом данного метода является способность загрузить программу в нативной среде, для которой она была разработана. VirtualBox и VMWare являются самыми популярными виртуальными машинами и доступны для пользователей Windows, Mac и Linux. Пользователи Mac могут также воспользоваться Boot Camp и Parallels. Процесс установки очень напоминает Windows Virtual PC. Загрузите продукт, примите соглашение и начинайте работу.

Обзор Oracle VM VirtualBox 4: Запуск нескольких виртуальных машин с разными версиями Windows

К запуску новой ОС Windows 10 компания Paragon Software представила бесплатную версию приложения Paragon Go Virtual 2015, с помощью которого вы можете использовать старую систему даже после перехода с Windows 7 и Windows 8.

Пользователей, которые беспокоятся о важных файлах, созданных в старых версиях Word, Excel or PowerPoint следует успокоить - на Windows 10 они тоже будут доступны с большой вероятностью. Многие приложения Microsoft предлагают возможность сохранять результаты работы в режиме совместимости. Данная функция на протяжении многих лет присутствует в продуктах Microsoft Office. Таким образом, если Вы стали работать над документом в общественной библиотеке на старом компьютере с Microsoft Word 2007, Вы сможете продолжить редактирование документа на новеньком ноутбуке с Windows 10 без необходимости конвертации в обычный текстовый формат или PDF.


Однажды вы задумаетесь, как превратить скрипт или приложение в Windows-службу. Скорее всего, задача окажется не такой уж тривиальной – приложению как минимум потребуется специальный интерфейс для получения команд от системы. А раз есть требования и ограничения, то есть и скрипты, и милые сердцу костылики для преодоления.

Статья будет полезна тем, кто, как и я — «программист не настоящий».

В отличие от назначенных заданий служба работает постоянно, запускается при старте ПК и может управляться средствами Windows. А еще регулярно запускаемому скрипту могут понадобиться данные с предыдущего запуска, и может быть полезно получение данных из внешних источников — например, в случае TCP или Web сервера.

Лично мне за последние пять лет приходилось создавать службу три с половиной раза:

  • Потребовалось создать сервис на fail2ban для Windows 2003., который работал с логами FileZilla и Apache, а при подозрении на брутфорс блокировал IP штатными средствами Windows — ipsec.
  • Аналог телнет-сервера для домашних версий Windows. Понадобилось выполнять команды на удаленных рабочих станциях, которые были под управлением Windows 7 Home. По сути, вторая попытка поиграть в службы.
  • Музыкальный проигрыватель для торгового зала под Windows. Задачу по ТЗ можно было решить при помощи mpd и пачки скриптов, но я решил — если уж делать скрипты, то почему бы и не «сваять» проигрыватель самому. За основу взял библиотеку BASS.dll.
  • Когда выбирали веб-сервер с поддержкой загрузки файлов под Windows, одним из вариантов был HFS. Сам по себе работать он не может, поэтому пришлось «запихивать» его в службу. В результате решение не понравилось, и просто установили «тему» Apaxy на web-сервере Apache.

Для создания службы можно использовать взрослые языки программирования вроде C. Но если вы не хотите связываться с Visual Studio, то возьмите готовые утилиты. Существуют платные решения вроде FireDaemon Pro или AlwaysUp, но мы традиционно сосредоточимся на бесплатных.

Этот уже немолодой механизм состоит из двух компонентов: утилиты instsrv.exe для установки сервиса и srvany.exe — процесса для запуска любых исполняемых файлов. Предположим, что мы создали веб-сервер на PowerShell при помощи модуля Polaris. Скрипт будет предельно прост:



Работа так называемого «сервера».

Теперь попробуем превратить скрипт в службу. Для этого скачаем Windows Resource Kit Tools, где будут наши утилиты. Начнем с того, что установим пустой сервис командой:

Где WebServ — имя нашего нового сервиса. При необходимости через оснастку services.msc можно задать пользователя, под которым будет запускаться служба, и разрешить взаимодействие с рабочим столом.

Теперь пропишем путь к нашему скрипту при помощи магии реестра. Параметры службы есть в разделе реестра HKLM\SYSTEM\CurrentControlSet\Services\WebServ. В нем нам нужно добавить новый раздел Parameters и создать там строковый параметр Application, указав в нем путь к исполняемому файлу. В случае скрипта PowerShell он будет выглядеть так:



Настроенная служба.

Можно запустить и радоваться.



Работающая служба.

Однако у этого способа есть недостатки:

  • Утилиты старые, разработаны до изобретения PowerShell, UAC и прочих вещей.
  • Srvany не контролирует работу приложения. Даже если оно выпадет в ошибку, служба продолжит свое дело как ни в чем не бывало.
  • Придется донастраивать и копаться в реестре. Вы же помните, что копаться в реестре небезопасно?

Поэтому перейдем к методу, частично лишенному этих проблем.

Существует утилита под названием NSSM — Non-Sucking Service Manager, что можно перевести как не-плохой менеджер служб. В отличие от предыдущей, она поддерживается разработчиком, и исходный код опубликован на сайте. Помимо обычного способа, доступна и установка через пакетный менеджер Chocolately.

Создать сервис можно из обычной командной строки, вооружившись документацией на сайте разработчика. Но мы воспользуемся PowerShell. Потому что можем, разумеется.



Установка через PowerShell.

Для разнообразия проверим работу службы не браузером, а тоже через PowerShell командой Invoke-RestMethod.



И вправду работает.

В отличие от srvany, этот метод позволяет перезапускать приложение на старте, перенаправлять stdin и stdout и многое другое. В частности, если не хочется писать команды в командную строку, то достаточно запустить GUI и ввести необходимые параметры через удобный интерфейс.

GUI запускается командой:



Настроить можно даже приоритет и использование ядер процессора.

Действительно, возможностей куда больше, чем у srvany и ряда других аналогов. Из минусов бросается в глаза недостаточный контроль над всем процессом.

Налицо нехватка «жести». Поэтому я перейду к самому хардкорному методу из всех опробованных.

Поскольку я давний любитель этого скриптового языка, то не смог пройти мимо библиотеки под названием _Services_UDF v4. Она снабжена богатой документацией и примерами, поэтому под спойлером сразу приведу полный текст получившегося скрипта.

Итак, попробуем «завернуть» в нее наш веб-сервис:

Разберу подробнее момент запуска приложения. Он начинается после операции $bServiceRunning = True и превращается в, казалось бы, бесконечный цикл. На самом деле этот процесс прервется, как только служба получит сигнал о завершении — будь то выход из системы или остановка вручную.

Поскольку программа для скрипта является внешней (powershell.exe), то после выхода из цикла нам нужно закончить ее работу с помощью ProcessClose.

Для этого скрипт необходимо скомпилировать в .exe, а затем установить службу, запустив exe с ключом -i.



Оно работает!

Разумеется, этот способ не самый удобный, и все дополнительные возможности придется реализовывать самостоятельно, будь то повторный запуск приложения при сбое или ротация логов. Но зато он дает полный контроль над происходящим. Да и сделать в итоге можно куда больше — от уведомления в Telegram о сбое службы до IPC-взаимодействия с другими программами. И вдобавок — на скриптовом языке, без установки и изучения Visual Studio.

Позвольте задать Вам простые вопросы по компьютерной грамотности: зачем нужны программы и кто их пишет?

Ответ первый: программы пишут системные администраторы для того, чтобы пользователи потом мучались в поисках ответа на известный вопрос Н.Г.Чернышевского «что делать» с этими программами.

Ответ второй: программы пишут программисты для того, чтобы пользователи могли их запустить, то есть, инициировать их выполнение.

Первый ответ – шутка, в которой есть доля правды. Второй ответ – правильный, с моей точки зрения (имхо).

Первый шаг в отношениях между пользователем и программой – это запуск программы пользователем. Затем можно выполнять в программе те действия, ради которых она и была создана.

Рассмотрим 7 способов запуска программ:

1) Из Главного меню можно запускать программы, которые в нем записаны.

  • калькулятор,
  • графический редактор Paint,
  • текстовые редакторы Блокнот и WordPad,
  • служебные программы по обслуживанию диска
  • и др.

Стандартные программы в Windows XP

Стандартные программы в главном меню Windows XP

Эту группу программ называют Стандартные, потому что она входит в состав операционной системы и устанавливается вместе с установкой операционной системы.

2) При помощи двойного щелчка по значку программы или по ярлыку на Рабочем столе Windows.

3) Щелчок по значку программы в Панели задач Windows. Например, на рисунке после щелчка по значку будет открыт текстовый редактор MS Word.


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

Команда Выполнить

5) Автоматический запуск программ, например:

  • при начальной загрузке Windows. Для того, чтобы это сделать, следует пройти по маршруту Пуск – Программы – Автозапуск.

Если поместить программы в меню Автозагрузка, то они будут автоматически запущены при начальной загрузке Windows.

  • при вставке в дисковод CD или DVD диска. При этом автоматически запускается программа, записанная на диске, правда, если автором диска не предусмотрено иное действие.

Иногда для избежания заражения вирусом автоматический запуск компакт-дисков отключают и сначала проверяют диск антивирусом.

  • по заданному графику. Такую возможность предоставляет встроенная в Windows программа-планировщик.

7) Двойной щелчок по значку или имени документа, обрабатываемого той или иной программой. Например, если щёлкнуть по значку с буквой «W», запустится программа MS Word.

Упражнения по компьютерной грамотности:

1. Запустите Калькулятор из Главного меню Windows.

2. С помощью команды «Выполнить» в Главном меню Windows, используя кнопку «Обзор», запустите программу MS Word. Для этого можно кликнуть по любому текстовому документу со значком, содержащем букву «W».

Можно ли запустить клиентское приложение в качестве службы? В одной из статей я описывал способы создания службы Windows штатными средствами ОС. Однако не каждое консольное приложение сможет запуститься как служба, а программы с графическим интерфейсом в принципе не умеют работать подобным образом. Но возможность запустить приложение как службу все же есть, и поможет нам в этом программа с оригинальным названием Non-Sucking Service Manager.

NSSM представляет из себя свободное программное обеспечение с открытым кодом и поддерживает все операционные системы Microsoft, начиная с Windows 2000 и заканчивая Windows 8. NSSM не требует установки, достаточно его загрузить и распаковать. В дистрибутив входят версии для 32- и 64-разрядных ОС. Взять программу можно с сайта nssm.cc, на данный момент последняя стабильная версия 2.21.1, которую я и буду использовать.

Для демонстрации возможностей NSSM попробуем запустить Блокнот Windows в качестве службы на Windows 8.1.

Создание службы

Для создания службы с именем notepad запускаем командную консоль, переходим в папку с распакованным NSSM (для 64-разрядной Windows) и вводим команду nssm install notepad , которая открывает окно графического инсталлятора NSSM. Чтобы создать службу, достаточно в поле Path указать путь к исполняемому файлу и нажать кнопку «Install service». Дополнительно в поле Options можно указать ключи, необходимые для запуска службы.

запуск NSSM

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

На вкладке «Shutdown» перечислены методы остановки и таймауты, используемые при штатном завершении работы или аварийной остановке приложения. Когда NSSM получает команду остановки (напр. при завершении работы приложения), то он пытается остановить контролируемое приложение штатным образом. Если же приложение не отвечает, то NSSM может принудительно завершить все процессы и подпроцессы этого приложения.

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

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

настройки выключения службы в NSSM

По умолчанию при падении службы NSSM пытается рестартовать ее. На вкладке «Exit actions» можно изменить автоматическое действие при нештатном завершении работы приложения, а также выставить задержку перед автоматическим перезапуском приложения.

настройки выхода для службы в NSSM

На вкладке «Input/Output (I/O)» можно задать перенаправление ввода\вывода приложения в указанный файл.

вкладка I/O в NSSM

На вкладке «Environment» можно задать для службы новые переменные окружения, или переопределить существующие.

вкладка Environment в NSSM

Также можно не пользоваться графической оболочкой и сразу создать службу в консоли такой командой:

nssm install notepad ″C:\Windows\system32\notepad.exe″

Управление службой

После создания службы с помощью NSSM зайдем в оснастку Services и найдем службу notepad. Как видите, с виду она ничем не отличается от остальных служб, мы также можем ее запустить, остановить или изменить режим запуска. Однако обратите внимание, что в качестве исполняемого файла указан nssm.exe.

свойства службы

А если зайти в Task Manager, то мы увидим следующую картину: в качестве основного (родительского) процесса запущен NSSM, служба notepad запущена как его дочерний процесс, и уже в этом дочернем процессе запущено приложение Блокнот.

служба NSSM в диспетчере задач

Удаление службы

Для удаления службы вводим команду nssm remove notepad и подтверждаем ее удаление. А введя команду nssm remove notepad confirm , можно обойтись и без подтверждения.

удаление службы в NSSM

Запуск службы в интерактивном режиме

разрешаем службе взаимодействие с рабочим столом

А дело в том, что для ее запуска необходимо разрешить запуск интерактивных служб на компьютере. Поэтому открываем редактор реестра, находим в разделе HKLM\System\CurrentControlSet\Control\Windows параметр типа DWORD с именем NoInteractiveServices и ставим его значение в 0.

разрешаем запуск интерактивных служб

После чего открываем консоль PowerShell и стартуем службу обнаружения командой:

Start-Service -Name ui0detect

включаем службу обнаружения

окно обнаружения запуска интерактивной службы

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

нулевой сеанс

Такое вот интересное решение для запуска приложений в виде служб Windows. Не самое красивое, но вполне соответствующее своему названию 🙂

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