プリンター用デバイス アプリのサンプルを動かしてみる


久方ぶりです。まさかたです。

前回の記事では、デバイスメタデータパッケージの作成を、ウィザード形式で行うことのできる、デバイスメタデータ作成ウィザードをご紹介しました。

今回は、その続きとして、実際に作成したデバイス メタデータ パッケージで、デバイスとデバイス アプリが連携して動作するところまでを、下記のようにプリンター用のデバイスアプリのサンプルが公開されていますので、これを例にご紹介したいと思います。

Device app for printers SDK sample

<http://code.msdn.microsoft.com/windowsapps/Device-app-for-printers-91f363a9>

大まかな手順は、下記のようになります。

① ダミーの V4 Printer Driver の作成とインストール

② サンプル デバイス アプリのビルドとインストール

③ デバイス メタデータ パッケージの作成とインストール

④ デバイス アプリの動作確認

ダミーの V4 Printer Driver の作成とインストール

今回は、Visual Studio 2012 のプロジェクトテンプレートのウィザードを使って、ダミーの V4 プリンター ドライバーを作成してみます。

01

ウィザードの進め方については、下記ドキュメントがご参考になると思います。

V4 印刷ドライバーの開発

<http://msdn.microsoft.com/ja-jp/library/windows/hardware/br259124.aspx>

※「3. V4 プリンタードライバーの開発 – 3.1 Visual Studio の使用」をご参照ください。

上記のドキュメントの手順に従って、ウィザードで自動的に生成される INF に記述を追加していくと、以下のようになるかと思います。

赤字の部分が、記述を追加した個所になります。

[Version]

Signature="$Windows NT$"

Class=Printer

ClassGuid={4D36E979-E325-11CE-BFC1-08002BE10318}

Provider=%ManufacturerName%

CatalogFile=v4PrinterDriver1.cat

ClassVer=4.0

DriverVer=05/20/2013,1.0.0.0

[DestinationDirs]

DefaultDestDir = 66000

[SourceDisksNames]

1 = %DiskName%,,,""

[SourceDisksFiles]

v4PrinterDriver1.gpd=1

v4PrinterDriver1-manifest.ini=1

v4PrinterDriver1RenderFilter-PipelineConfig.xml=1

[Manufacturer]

%ManufacturerName%=Standard,NT$ARCH$

[Standard.NT$ARCH$]

"My v4 Printer"=DriverInstall,{b35f1d35-ac53-4d19-a315-5d38928bae39}

[Strings]

ManufacturerName="My Company"

DiskName="v4PrinterDriver1 Installation Disk"

[DriverInstall]

CopyFiles=DriverFiles

[DriverFiles]

v4PrinterDriver1.gpd

v4PrinterDriver1-manifest.ini

v4PrinterDriver1RenderFilter-PipelineConfig.xml

この INF を使ってビルドした以下のドライバー一式を、今回は Windows 8 x86 の仮想環境上にインストールしてみます。

20

今回は、「デバイスとプリンター」から、「プリンターの追加」でローカルプリンターとして INF を選択して、インストールします。

13

以下のように、ウィザードで作成したダミーの V4 プリンタードライバーが追加されました。

21

サンプル デバイス アプリのビルドとインストール

続いて、Windows ストア デバイス アプリとして、下記のサンプルをダウンロードして、ビルド、インストールします。

2.1 サンプルをダウンロード

Device app for printers SDK sample

<http://code.msdn.microsoft.com/windowsapps/Device-app-for-printers-91f363a9>

2.2 サンプルに含まれるソリューションファイル (.sln) をオープンして、Visual Studio 2012 でビルドします

      今回は、既存のサンプルに特に手は加えません。

2.3 デバイス アプリのインストール

      大別すると、以下の 2 通りの方法がありますので、お好きな方法でインストールしてください。

[1] アプリ パッケージを作成してインストール

Visual Studio 2012 の、[プロジェクト] – [ストア] – [アプリ パッケージの作成] を選択し、"Windows ストアにアップロードするパッケージを作成しますか?" では "いいえ" を選択します。

詳細な手順は、下記ドキュメントがご参考になると思います。

アプリケーション パッケージの作成 (Windows ストア アプリ)

<http://msdn.microsoft.com/ja-jp/library/windows/apps/hh975357.aspx>

アプリケーション パッケージのローカルな共有 (Windows ストア アプリ)

<http://msdn.microsoft.com/ja-jp/library/windows/apps/hh975356.aspx>

[2] VS2012 の機能を使ってリモートコンピュータに自動的に配置

Visual Studio 2012 をインストールしていない別の環境に、アプリをインストールしてデバッグする場合にも利用可能な方法です。

詳細な手順は、以下のドキュメントをご参考としてください。

How to: Set Up Remote Debugging

<http://msdn.microsoft.com/en-us/library/bt727f1t.aspx>

上記の手順でアプリをインストールすると、下記のようにスタートスクリーン上に、サンプルアプリのタイル (Windows SDK App4PrinterCS) が表示されます。

16

ここでアプリを起動してみると、下記のような画面が表示されます。ただし、まだデバイス メタデータ パッケージがインストールされていないため、先ほどのプリンタードライバーとの紐付けがされていませんので、[Get Associated Printers] ボタンをクリックしても、直下のドロップダウン リストには何も表示されません。

17

 

デバイス メタデータ パッケージの作成とインストール

前回の記事でご紹介した、デバイスメタデータ作成ウィザードで、デバイスメタデータ パッケージを作成します。

3.1 Visual Studio 2012 で [DRIVER] – [Device Metadata] – [Authoring] を選択し、"Device Metadata Authoring Wizard" を起動

3.2 "Create new device metadata package" を選んで [Next]

3.3  [Package Definition] タブでロケールを選択

18

3.4  [Description] タブで、Model NameMacufacturer を入力

19

3.5  [Categories] タブで Available categories から "PrintFax" を選択し、さらに Primary category として "PrintFax" を選択

40

3.6  [Associations] タブで Hardware ID に 紐付けを行いたいプリンターの Hardware ID を追加

41

ちなみに、上記の Hardware ID はデバイスマネージャー上から確認することが可能です。

22

3.7 [Applications] タブで、以下の項目に、デバイスアプリのプロジェクト内の Package.appxmanifest の"パッケージ化" タブの情報を基に値を入力します。

  • "Package Name: Package.appxmanifest の "パッケージ名"

例) Microsoft.SDKSamples.DeviceAppForPrinters.CS

  • "Publisher: appxmanifest の "発行者" (グレーアウトしているボックス)

例) CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US

  • "App ID: Package.appxmanifest を右クリックして、"コードを表示" して、<Application Id="… というタグを探します。

例) DeviceAppForPrinters

07

24

下記が、上記のマニフェストの情報を基に、ウィザードの Applications タブに入力した結果です。

25

3.8  [Finish] タブで [Finish] ボタンをクリック

26

3.9 作成されたメタデータパッケージを、デバイスアプリを動作させる環境の Device Metadata Store にコピーします

27

上記の例では、C:\ProgramData\Microsoft\Windows\DeviceMetadataStore\en-US フォルダにコピーしています。

デバイス メタデータ パッケージをテスト目的でインストールする方法などについては、下記のドキュメントがご参考になるかと思います。

デバイス メタデータ パッケージのパイプライン

<http://msdn.microsoft.com/ja-jp/library/windows/hardware/gg463157.aspx>

デバイス アプリの動作確認

改めて、[デバイスとプリンター] 画面をオープンし、最初にインストールしたダミーのプリンターのアイコンを選択すると、画面下部に表示される、モデル名や製造元名が、デバイスメタデータ パッケージに入力した値に変更されているのが分かります。

28

また、デバイス アプリを起動し、[Get Associated Printers] ボタンをクリックすると、先ほどのプリンタードライバーが表示されるようになりました。

29

さらに、適当な Windows ストア アプリから、チャームバーを表示させて、[デバイス] を選択すると、ウィザードで作成したプリンタードライバーが表示されますので、選択してみます。

30

31

すると、下記のように印刷のプレビューが表示されます。

32

この画面で、さらに [その他の設定] というリンクをクリックすると、下記のように、デバイス アプリで作成した「詳細印刷設定エクスペリエンス」と呼ばれる独自の UI が表示されるのが分かります。

33

ちなみに、デバイス アプリやデバイス メタデータ パッケージがインストールされていない場合は、以下のような既定の UI が表示されます。

42

というわけで、デバイスメタデータパッケージを使うことで、デバイスと連携してデバイス アプリが動作するところまで確認することができました。

何かのお役に立ちましたら幸いです。

それではまた。

[参考]

Windows ストア デバイス アプリ

<http://msdn.microsoft.com/ja-jp/library/windows/apps/hh464909.aspx>

Windows ストア デバイス アプリのライフサイクル

<http://msdn.microsoft.com/ja-jp/library/windows/hardware/hh833785.aspx>

プリンター用 Metro スタイル デバイス アプリ

<http://msdn.microsoft.com/ja-JP/library/windows/hardware/hh833795.aspx>

デバイス メタデータ

<http://msdn.microsoft.com/library/ja-jp/windows/hardware/hh833794.aspx>

Skip to main content