Как мне автоматически запустить приложение, отличное от Surface, в Windows Embedded 8?

Как мне автоматически запустить приложение, отличное от Surface, в Windows Embedded 8?

Я хочу автоматически запускать приложение с графическим интерфейсом при запуске в Windows Embedded 8, но не могу понять, как это сделать. Я читал Руководство профессионала по Windows Embedded 8 Standard Шона Лиминга, и в главе 8 он описывает, как изменить работу устройства. Он называет, как есть средство запуска приложений Windows 8, но только для приложений Surface. Он также описывает модуль Shell Launcher, но мое приложение не является оболочкой. Он также упоминает оболочку, которую написал здесь, но читая ее документацию, он не описывает, как автоматически запускать программу в этой оболочке.

Насколько я могу судить, он не описывает, как автоматически запускать приложение, отличное от Surface, и Google и Stack Exchange не дают мне никаких результатов (не помогает то, что большинство результатов возвращаются как просто Windows 8, а не Windows Embedded 8). Или я ошибаюсь? Достаточно ли Shell Launcher для запуска приложения, не являющегося оболочкой? Действительно ли запущенное приложение становится «оболочкой»?

Боковое примечание: вероятно, стоит упомянуть, что приложение, которое я хочу запустить, является приложением Java. Я буду включать модульный установщик Java JRE, упомянутый в книге, но если есть какие-либо другие условия для запуска приложения Java в WE8S, прокомментируйте, пожалуйста.

Спасибо за ваше время и отзывы!


person einnocent    schedule 24.11.2013    source источник


Ответы (1)


Это работает как для Windows Embedded Standard 7, так и для Windows Embedded 8 Standard:

Обычно я устанавливаю Windows Embedded Standard со стандартной оболочкой. В WE8S это будет Metro UI. После завершения установки и настройки и успешного запуска вашего приложения я использую записи реестра для изменения приложения, запускаемого при запуске.

Настраиваемая оболочка для конкретного пользователя

В качестве примера, чтобы запустить медиаплеер VLC в качестве оболочки и воспроизводить медиафайлы в папке на d: \, например, d: \ media в непрерывном цикле, я использую следующее в файле .bat, работающем как администратор.

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

  • Создайте новый файл .bat:

    1. in Windows Explorer, Select "File" -> "New" -> "Text Document"
    2. Переименуйте "New Text Document.txt" в custom_shell.bat.
  • Вставьте ниже в файл

  • Сохраните файл
  • Щелкните файл правой кнопкой мыши -> «Запуск от имени администратора».

    c:\Windows\system32\reg.exe DELETE "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /f
    c:\Windows\system32\reg.exe ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d explorer.exe
    c:\Windows\system32\reg.exe ADD "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "c:\program files\vlc\vlc.exe -f --loop ""d:\media"""
    c:\Windows\system32\reg.exe DELETE "HKLM\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping\system.ini\boot" /v Shell /f
    c:\Windows\system32\reg.exe ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping\system.ini\boot" /v Shell /t REG_SZ /d "USR:Software\Microsoft\Windows NT\CurrentVersion\Winlogon"
    pause
    

Это изменяет оболочку для ! Current User! (т.е. пользователя, вошедшего в систему) для запуска VLC.exe при входе в систему. (Я использую reg.exe, потому что в некоторых упрощенных установках regedit.exe может не входить)

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

Запуск оболочки проводника из настраиваемой оболочки

Вы по-прежнему можете запустить оболочку проводника с пользовательским интерфейсом метро, ​​когда пользователь с настраиваемой оболочкой вошел в систему. Чтобы запустить оболочку проводника от пользователя, запустившего оболочку VLC (настраиваемую):

  • Запустите диспетчер задач (CTRL + SHIFT + ESC)
  • Нажмите кнопку «Дополнительно» в нижней части диспетчера задач.
  • Выберите «Файл» -> «Новая задача (Выполнить ...)» в строке меню.
  • Введите "Explorer.exe" (это запустит службу проводника)
  • Повторите вышеуказанные шаги еще раз (это запустит экземпляр Windows Explorer).
  • Тогда пользовательский интерфейс Metro должен быть пригоден для использования.

Приложение Java как оболочка

Более того, чтобы запустить ваше Java-приложение, измените запись ниже в указанном выше .bat

от:

c:\Windows\system32\reg.exe ADD "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "c:\program files\vlc\vlc.exe -f --loop ""d:\media"""

в

c:\Windows\system32\reg.exe ADD "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "java [any other JVM options you need to give it] -jar "path\jar-file-name.jar""

Если ваше приложение Java не включает манифест, вышеуказанное не будет работать!

Попробуйте это (я этого не тестировал):

java -cp jar-file-name.jar full.package.name.ClassName

Вернуться в проводник (оболочка по умолчанию), т.е. отменить пользовательскую оболочку

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

! Это должно быть выполнено, когда пользователь вошел в систему с помощью настраиваемой оболочки!

  • Создайте новый файл .bat:

    1. in Windows Explorer, Select "File" -> "New" -> "Text Document"
    2. Переименуйте "New Text Document.txt" в default_shell.bat.
  • Вставьте ниже в файл

  • Сохраните файл
  • Щелкните файл правой кнопкой мыши -> «Запуск от имени администратора».

    c:\Windows\system32\reg.exe DELETE "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /f
    c:\Windows\system32\reg.exe ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d explorer.exe
    c:\Windows\system32\reg.exe DELETE "HKLM\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping\system.ini\boot" /v Shell /f
    c:\Windows\system32\reg.exe ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping\system.ini\boot" /v Shell /t REG_SZ /d "SYS:Microsoft\Windows NT\CurrentVersion\Winlogon"
    c:\Windows\system32\reg.exe DELETE "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /f
    pause
    

Автоматический вход пользователя:

Вы можете настроить Windows на автоматический вход в определенный профиль пользователя.

  • Пуск> Поиск> netplwiz
  • ИЛИ [Windows Key + R]> netplwiz
  • Откроется окно «Учетная запись пользователя». Выделите учетную запись, которую вы хотите автоматически загружать при запуске Windows.
  • Снимите флажок над окном «Пользователи должны ввести имя пользователя и пароль, чтобы использовать этот компьютер».
  • Щелкните ОК.
  • Вам будет предложено подтвердить операцию, введя пароль.
  • Введите свой пароль, чтобы завершить изменение.

При следующем запуске Windows выбранная вами учетная запись пользователя будет загружена автоматически.

Что нужно учитывать

Поэкспериментируйте, но, если возможно, используйте тестовую среду. Если вы можете запустить оболочку, то может и кто-то другой. Используйте фильтр клавиатуры, чтобы отфильтровать известные комбинации клавиш и создать одну только вам и, возможно, специалистам по обслуживанию. Удалите права администратора для пользователя с помощью настраиваемой оболочки. Используйте унифицированный фильтр записи (или расширенный фильтр Райта / фильтр записи на основе файлов). Снимать защиту только при внесении изменений.

Большое СПАСИБО Шону Лимингу и его работе - он вдохновил на это.

Марк Бёмер, специалист по Windows Embedded, Южная Африка

person user3592630    schedule 01.05.2014
comment
Спасибо за обстоятельный ответ :) - person einnocent; 01.05.2014
comment
Я знаю, что это довольно давно, но почему бы вместо этого не использовать Shell Launcher? - person d.moncada; 12.06.2015