Яндекс Диск как служба Windows

Если кто-то делает/сделает лучше и "пушистее"  - рассказывайте, делитесь, да воздастся вам по делам вашим, вобщем - welcome anytime! Моя задача была чтобы быстро и чтоб работало.

Пару слов про Яндекс Диск ( ЯД 🙂 ) -  проект это коммерческий с бесплатной составляющей в виде заманухи. Да, здорово, что ЯД есть, никто не ворчит, но истинные мотивы проекта понимать надо - продавать. Делать бесплатные расширенные "плюшки" в программе никто не собирался. Основные моменты:

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

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

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

Затем скачиваете nssm, распаковываете, переносите в Program Files - файл будет исполняться из того места, где он лежит, поэтому сразу переносим по месту. Мои комментарии относительно ЯД'а:

  • Запускаете командную строку от имени Администратора, переходите в каталог скачанной nssm;
  • Пишете nssm install YaDisk;
  • Указываете путь C:\Users\имя_пользователя\AppData\Roaming\Yandex\YandexDisk\YandexDisk.exe;

Яндекс Диск как служба Windows

  • Закладка Details, вбиваете Display name:

Яндекс Диск как служба Windows

  • Закладка Log on as, вбиваете имя и пароль пользователя, для которого установлена программа:

Яндекс Диск как служба Windows

У меня пользователь с правами Администратора, настроить под обычного пользователя можно - мне это не нужно. Еще есть закладка, где можно выбрать используемые ядра процессора - разумная вещь.

  • Нажимаете Install service:

Яндекс Диск как служба Windows

  • Заходите в Сервисы, находите YaDisk, нажимаете Запустить:

Яндекс Диск как служба Windows

  • Запускаете Диспетчер задач, переходите к Процессам, наша служба -  как пирожок  - двухслойная:

Яндекс Диск как служба Windows

Первая часть - это запуск nssm и скрипта, вторая - ЯД'а.

Яндекс Диск как служба Windows

При этом графически нигде ЯД не светится - это очень хорошо, а синхронизация работает. Чтобы проверить нужно открыть ЯД в браузере и папку ЯД'а на компьютере - создавать/удалять и смотреть как в другой папке синхронно появляется/удаляется.

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

Яндекс Диск как служба Windows

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

Справедливости ради нужно поблагодарить человека, давшего наводку (прошу не путать с "на водку") на nssm, я лишь адаптировал к Яндекс Диску. Однако уверен 100%, что моя заметка будет полезна многим.

Добавление от 06.04.2016

Удаляем значок ЯД'а из Моего компьютера, так как щелчок на этом значке запускает графическую оболочку - HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\ удаляем
раздел {19170A69-A883-40D5-AF97-F6DC41495F15}

Яндекс Диск как служба Windows

Источник:
//windowsnotes.ru/programs/kak-zapustit-prilozhenie-v-vide-sluzhby-windows/

Добавление от 22.05.2016

Сегодня увидел, что Яндекс Диск не синхронизируется. Служба работает.. Стал припоминать, вспомнил, что менял пароль от ящика. Это важный момент - при смене пароля, нужно запустить программу ЯД'а и вбить новый пароль. Когда ЯД работает в фоновом режиме про это легко забыть.

Яндекс Диск как служба Windows: 7 комментариев

  1. Nssm, спасибо, интересный вариант.

    А я закинул яд.ехе в шедулер, с перезапуском раз в час.

  2. 1. Для начала вам понадобится пара файлов из состава Resource Kit. Скачать ResKit можно здесь или здесь.

    2. Копиpyете файлы instsrv.exe и srvany.exe в какyю-нибyдь системнyю диpектоpию, напpимеp, в winnt\system32\ В ResKit есть еще

    srvinstw – это пошаговая GUI-оболочка делающая то же, что и instsrv, но ещё умеет ставить/сносить службы удаленно ).

    3. Запyскаете из командной стpоки:
    instsrv MyService c:\path\to\srvany.exe

    где MyService — пpидyманное вами имя вновь созданного сеpвиса. Если в имени имеются пpобелы, то имя сеpвиса необходимо

    заключить в кавычки.

    4. Тепеpь надо сконфигypиpовать этот сеpвис. Идете в: Start -> Settings -> Control Panel -> Services (services.msc), находите свой новый

    сеpвис и заходите в свойства. В откpывшемся окошке отмечаете, каким способом ваш сеpвис бyдет запyскаться: Automatic – бyдет

    запyскаться автоматически пpи загpyзки компьютеpа, Manual – бyдет запyскаться только вручную (или по требованию других служб

    и приложений), Disabled – Отключен, запрещен к запуску. Если хотите видеть запущенный сеpвис в виде окна на десктопе, то

    отметьте чек-бокс «Allow Service to Interact with Desktop» (Разрешить взаимодействие с рабочим столом). Здесь же можно указать

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

    5. Запyскаете regedit и создаёте key «Parameters» (без кавычек) в: HKLM \ SYSTEM \ CurrentControlSet \ Service \ Имя_Вашего_сеpвиса \

    6. Создаёте под созданным вами ключом «Parameters» (без кавычек) value «Application» (без кавычек) тип — REG_SZ: и прописываете

    там полный пyть к исполняемомy файлy.
    Hапpимеp, ApplicationName | REG_SZ | c:\path\to\application.exe

    7. Перезагружаете компьютер или стартуете сервис вручную.

    Источник: //wremya.org/index.php/faq/37-manwindows/111--windows

    1. Спасибо за благодарность. Делалось давно, уже не знаю насколько актуально с текущей версией Яндекс.Диск.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *