私の winRT アプリケーションを xaml のスクリーン セーバーとして作成する方法はありますか?
2 に答える
ジェリーが言うように、Windowsストアアプリのスクリーンセーバーを作成する簡単な方法はありません。ただし、Windows 8では機能するが、WindowsRTでは機能しない可能性のあるラウンドアバウトソリューションがあります。私はそれをほぼ機能させています。私がこれまでに持っているものを共有します。
.scr
スクリーンセーバーは、に保持されている拡張子を持つ単なる実行可能ファイルC:\Windows\System32
です。たとえば、を見てくださいC:\Windows\System32\Bubbles.scr
。私が考えている解決策は、.scr
XAMLを使用すると言うWindowsストアアプリケーションを起動することだけを目的としたスクリーンセーバーを作成することです。
コマンドラインからWindowsストアアプリを直接起動することはできないため、ランチャーアプリを作成します。AshwinNeedamangalaによるWindows8アプリのテストの自動化と呼ばれるブログ投稿をご覧ください。記事の途中で、アプリのアクティベーションの自動化というセクションを探してください。これには、次の方法でWindowsストアアプリを起動できるサンプルC++アプリケーションが含まれています。
C:> Win8AppLaunch.exe Microsoft.BingNews_8wekyb3d8bbwe!AppexNews
そのページのサンプルランチャーを変更する必要がありますが、変更する前に、コードをC++コンソールアプリにコピーするだけです。
コマンドラインからテストする準備はほぼ整っていますが、アプリの名前をとして指定する必要がありますAppUserModelId
。詳細はAshwinの投稿にありますが、言い換えると、最初に次のコマンドを使用してシステムでPowerShellスクリプトの実行を許可する必要があります。
PS C:> Set-ExecutionPolicy AllSigned
次に、次のPowerShellスクリプトを実行します。
$installedapps = get-AppxPackage
foreach ($app in $installedapps)
{
foreach ($id in (Get-AppxPackageManifest $app).package.applications.application.id)
{
$app.packagefamilyname + "!" + $id
}
}
WindowsPowerShellISEで実行することをお勧めします。かなり滑らかです。上記のように、アプリのを見つけて、コマンドラインからAppUserModelId
テストします。Win8AppLaunch.exe
これにより、コマンドラインからWindowsストアアプリが起動します。
次に、C ++ランチャーを変更してAppUserModelId
、コマンドライン引数からアプリケーションを解析するのではなく、アプリケーションのをハードコーディングします。この要点を作成しました。重要な部分は、私が宣言する行myApp
です。
新しい実行可能ファイルをビルドし、名前を変更してMyScreenSaver.scr
、に配置しC:\Windows\System32
ます。その後、スクリーンセーバー設定のコントロールパネルに表示されます。そこでスクリーンセーバーをプレビューでき、機能します。ただし、スクリーンセーバーが起動するのを待つと、コンソールウィンドウが一時的に表示され、完全に起動することはありません。理由はわかりません。プロジェクトをWindowsアプリに切り替えてコンソールウィンドウの作成を無効にしようとしましたが、それは役に立ちませんでした。Properties | Configuration | Linker | System | SubSystem
に変更して、自分で試すことができますWINDOWS
。_tMain
エントリポイントをからに変更する必要があるため、もう少し複雑です_tWinMain
。詳細が必要な場合は、私のブログから私に連絡してください。私のStackOverflowプロファイルはそれをリストしています。
この時点で、ほぼ完全に機能しています。動作することがわかっている空白のC++スクリーンセーバーから始めて、上記のコードをコピーしてみてください。もっと時間があれば、自分でやってみようかな。
クールなアイデア。しかし、いいえ。
アプリケーションを単純なアプリとして実行する以外に、実際に Windows で何かを実行したい場合は、拡張アプリを作成します。これが公式の言葉です:
拡張機能 拡張機能は、アプリと Windows の間の契約のようなものです。拡張機能を使用すると、アプリ開発者は、主に自分のアプリで使用し、場合によっては他のアプリで使用するために、標準の Windows 機能を拡張またはカスタマイズできます。
現在、次の種類の拡張アプリがあります。
アカウントの画像プロバイダー (拡張機能) ユーザーがアカウントの画像を変更する場合、既存の画像を選択するか、アプリを使用して新しい画像を撮ることができます。アプリで写真を撮影できる場合は、この拡張機能を使用して、Windows の [アカウントの画像設定] コントロール パネルにアプリを一覧表示することができます。そこから、ユーザーはそれを選択して新しいアカウントの画像を作成できます。この拡張機能の詳細については、UserInformation リファレンス トピックを参照してください。アカウントの写真名のサンプルもご覧ください。
自動再生 (拡張機能) ユーザーがデバイスをコンピューターに接続すると、Windows は自動再生イベントを発生させます。この拡張機能を使用すると、アプリを 1 つ以上の AutoPlay イベントの AutoPlay の選択肢として一覧表示できます。
バックグラウンド タスク (拡張機能) アプリは、アプリが中断されている場合でも、バックグラウンド タスクを使用してアプリ コードを実行できます。バックグラウンド タスクは、ユーザーとの対話を必要としない小さな作業項目を対象としています。
カメラ設定 (拡張機能) アプリは、カメラ オプションを選択し、カメラを使用して写真やビデオをキャプチャするときに効果を選択するためのカスタム ユーザー インターフェイスを提供できます。この拡張機能の詳細については、「カメラ用の Windows ストア デバイス アプリの開発」を参照してください。
Contact picker (extension) This extension enables your app to register to provide contact data. Your app is included in the list of apps that Windows displays whenever the user needs access to their contacts. For more info about this extension, see the Windows.ApplicationModel.Contacts.Provider reference topic. You can also check out Managing user contacts.
File activation (extension) Files that have the same file name extension are of the same file type. Your app can use existing, well known file types, such as .txt, or create a new file type. The file activation extension enables you to define a new file type or register to handle a file type.
ゲーム エクスプローラー (拡張機能) アプリをゲームとして Windows に登録できます。これを行うには、ゲーム定義ファイル (GDF) を作成し、アプリでバイナリ リソースとしてビルドし、パッケージ マニフェストでそのリソースを宣言する必要があります。
印刷タスクの設定 (拡張機能) 印刷関連のカスタム ユーザー インターフェイスを表示し、印刷デバイスと直接通信するアプリを設計できます。印刷デバイスの特定の製造元とモデルに固有の機能を強調すると、よりリッチで強化されたユーザー エクスペリエンスを提供できます。
プロトコルのアクティブ化 (拡張) アプリでは、通信に既存のプロトコル (mailto など) を使用したり、カスタム プロトコルを作成したりできます。プロトコル アクティベーション拡張機能を使用すると、カスタム プロトコルを定義したり、既存のプロトコルを処理するように登録したりできます。
SSL/証明書 (拡張) デジタル証明書は、あるエンティティを別のエンティティに認証するために使用されます。たとえば、証明書は、SSL を介して Web サービスに対してユーザーを認証するためによく使用されます。この拡張機能を使用すると、アプリにデジタル証明書をインストールできます。
引用: http://msdn.microsoft.com/en-us/library/windows/apps/hh464906.aspx
残念ながら、スクリーンセーバーとは何の関係もありません。現時点では、スクリーン セーバーとして機能する Windows 8 アプリを作成できないという技術的な理由は、Windows 8 アプリは基本的に WinRT 実行環境内で実行するように関連付けられているためです。そのシェルは、この現在のバージョンの Windows の [スタート] メニューを超えて拡張することはありません。そのため、スクリーン セーバーのように外部で実行する方法はありません。スクリーン セーバーは、依然として「昔ながらの方法」で構築されています。