1

Windows Embedded 8 で Surface 以外のアプリケーションを自動的に起動するにはどうすればよいですか?

Windows Embedded 8 で起動時に GUI アプリケーションを自動的に起動したいのですが、その方法がわかりません。私は Sean Liming のProfessional's Guide to Windows Embedded 8 Standard を読んでいて、第 8 章でデバイス エクスペリエンスを変更する方法について説明しています。彼は、Windows 8 アプリケーション ランチャーがどのように存在するかを挙げていますが、Surface アプリ専用です。彼は Shell Launcher モジュールについても説明していますが、私のアプリはシェルではありません。彼はここに書いたシェルについても言及していますが、そのドキュメントを読んでみると、そのシェル内でプログラムを自動的に起動する方法については説明されていません。

私が知る限り、彼はどこでも非 Surface アプリケーションを自動的に起動する方法を説明しておらず、Google と Stack Exchange からも結果が得られません (ほとんどの結果が単に Windows 8 ではなく、単に Windows 8 として返されることは役に立ちません)。 Windows 埋め込み 8)。それとも私は間違っていますか?非シェル アプリを起動するには、シェル ランチャーで十分ですか? 起動したアプリは実質的に「シェル」になりますか?

補足: 起動したいアプリが Java アプリであることは、おそらく言及する価値があります。本に記載されているように、モジュールベースの Java JRE インストーラーを含めますが、WE8S で Java アプリを起動するための条件が他にある場合は、コメントしてください。

お時間をいただき、フィードバックをお寄せいただきありがとうございます。

4

1 に答える 1

6

これは、Windows Embedded Standard 7 と Windows Embedded 8 Standard の両方で機能します。

私は通常、Windows Embedded Standard を標準シェルでインストールします。WE8S では、これは Metro UI になります。インストールと構成が完了し、アプリケーションが正常に実行されたら、レジストリ エントリを使用して、起動時に起動されるアプリケーションを変更します。

カスタムのユーザー固有のシェル

例として、VLC メディア プレーヤーをシェルとして起動し、d:\ のフォルダー (例: d:\media) のメディア ファイルを連続ループで再生するには、以下を .bat ファイルで使用し、管理者として実行します。

これは、カスタム シェルを起動するユーザーにログインしている間に実行する必要があります。

  • 新しい .bat ファイルを作成します。

    1. Windows エクスプローラーで、「ファイル」->「新規」->「テキスト ドキュメント」を選択します。
    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 を起動します。(一部のスリム化されたインストールにはregedit.exeが含まれていない可能性があるため、reg.exeを使用します)

これは、他のすべてのユーザーのシェルが引き続きエクスプローラー シェルであるため、管理者ユーザーとして (通常は管理者プロファイルが無効になっている場合はセーフ モードを介して) ログオンした場合でも、完全なユーザー インターフェイスにアクセスできることを意味します。

カスタム シェル内からのエクスプローラ シェルの起動

カスタム シェルを使用するユーザーがログオンしている場合でも、metro UI を使用してエクスプローラー シェルを起動できます。VLC (カスタム) シェルを実行しているユーザーからエクスプローラー シェルを起動するには:

  • タスク マネージャーを起動します (CTRL + SHIFT + ESC)
  • タスクマネージャーの下部にある「詳細」ボタンをクリックします
  • メニューバーから「ファイル」→「新しいタスク(実行...)」を選択
  • 「Explorer.exe」と入力します (これにより、エクスプローラー サービスが開始されます)。
  • 上記の手順をもう一度繰り返します (これにより、Windows エクスプローラーのインスタンスが起動します)。
  • その後、Metro UI が使用可能になるはずです

シェルとしての 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. Windows エクスプローラーで、「ファイル」->「新規」->「テキスト ドキュメント」を選択します。
    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 キー + R] > netplwiz
  • 「ユーザー アカウント」ウィンドウが開きます。Windows の起動時に自動的に読み込むアカウントを強調表示します。
  • その上にある [ユーザーがこのコンピューターを使用するには、ユーザー名とパスワードを入力する必要があります] というタイトルのボックスのチェックを外します。</li>
  • [OK] をクリックします。
  • パスワードを入力して操作を確認するよう求められます。
  • パスワードを入力して変更を完了します。

次回 Windows を起動すると、選択したユーザー アカウントが自動的に読み込まれます。

考慮事項

試してみてください。ただし、可能であればテスト環境を使用してください。シェルを起動できる場合は、他の人も起動できます。キーボード フィルターを使用して、既知のキーの組み合わせを除外し、サービス技術者が知っている、あなただけのキーの組み合わせを作成します。カスタム シェルを使用してユーザーの管理者権限を削除する 統合書き込みフィルター (または拡張書き込みフィルター/ファイル ベースの書き込みフィルター) を使用します。変更する場合のみ保護を解除してください。

ショーン・リミングとその仕事に心から感謝します - 彼はこれに影響を与えました.

Mark Böhmer Windows Embedded スペシャリスト 南アフリカ

于 2014-05-01T11:58:05.743 に答える