Home > C# > Toolkit > Windows API CodePack > サンプルコード

Windows API Code Packのサンプルコード

新規作成日 2019-02-22
最終更新日

Windows API Code Packのサンプルコードの所在

サンプルコードの所在

Windows API Code Packのサンプルコードは、sourceフォルダ内にあります。しかし、DirextXを使ったサンプルコードと他の一部のコードは、Windows10 64bit、Visual Studio 2017では、動作しませんでした。

動作しかなかった機能は、他のツールキットを探したほうが良いと思います。

Readmeに、「代わりに、SharpDXを使用することを強くお勧めします。」と記載されていましたので、DirextXについては、SharpDXや他のツールキットの利用を考えて下さい。

AeroGlassDemo

実行すると、Explorerが表示される。外観がVistaで導入されたAeroが利用できることデモと思われるが、これを実行しているのが、Windows10なので、特に何も感じない。

AeroGlassDemo

AppRestartRecoveryDemo

デモは、Formアプリケーションで作成されていました。

60秒後、App Restart Recovery→Crashをクリックして、強制的にアプリケーションをクラッシュさせると、アプリケーションがリスタートし、クラッシュ前の状態が復元されます。

動作を確認するには、Visual Studioでは、「ディバッグなしで実行」する必要があります。

AppRestartRecoveryDemo

CollectiveSample

CollectiveSample、CollectiveSample10ともに、Windows10 64bit、Visual Studio 2017では、実行できない。

DirectX

フォルダ内に複数のサンプルが存在しますが、Windows10 64bit、Visual Studio 2017では、DirectXのバージョンが異なるため動作しません。

ExplorerBrowser

ファイルブラウザが表示されます。

ExplorerBrowser

ExtendedLinguisticServices

ELSDemo

ELSDemo

Transliterator

Transliterator

HandlerSamples

単独では、実行できません。

HandlerSamples内のReadme.txtの訳

シェル拡張機能サンプル

Shell Extension Samples

サムネイル・プロバイダとプレビューのハンドラは、Windowsシェルの中心的な機能を拡張します。

あなたのコードが、シェルを呼び出すのではなく、シェルが、あなたのコードを呼び出すため、それらは、Code Packのほとんどと異なります。

シェルが、自分のコードを探して、見つける必要があることを知るためには、あなたは、コンパイルしたアセンブリを登録する必要があります。

あなたのハンドラを登録するために。

  1. IPreviewHandler、または、IThumbnailProviderと1つ以上の初期化インターフェイスから、クラスを派生させます。
  2. あなたのハンドラ・クラスに、適切な属性を追加します。

    PreviewハンドラとThumbnailプロバイダの両方に、これらの属性が必要です。

    [ComVisible(true)] // Shell/COMを、あなたのクラスに見せましょう。
    [ClassInterface(ClassInterfaceType.None)] // 必要です
    [ProgId("HandlerSamples.XYZPreviewerWPF")] // これは、ハンドラごとに一意である必要がある、代わりのホストを関連付けるために必要です。
    [Guid("B9E6A036-9778-4B48-BA45-33F15B9B07AF")] //これは、アセンブリが登録されているGUIDです。; 

    それは、一意である必要があります。

    Previewハンドラは、この追加の属性を必要とします。:

    [PreviewHandler("PreviewHandlerWPFDemo", ".xyz", "{EC3E84CC-BDC5-4E9F-A67F-CC960F366497}")] // 拡張機能とハンドラの子孫(一意でなければなりません)の半コロンで区切られたリストの名前。

    サムネイル・ハンドラは、この追加の属性を必要とします。

    [ThumbnailProvider("XYZThumbnailer", ".xyz", DisableProcessIsolation = false)] //セミコロンで区切られたファイル拡張子のリストの名前。

    IThumbnailFromStreamが、実装されていない場合、DisableProcessIsolationのみが必要です。

  3. コンパイルします。お使いのシステムのOSバージョン用に、特別にコンパイルしてください。
    • 64ビットOSでは、x64用にビルドします。
    • 32ビットOSでは、x86用にビルドします。
  4. Visual Studioのコマンド・プロンプトの出力ディレクトリに移動します。

    ご使用のOSの種類のために、正しいプロンプト(32/64ビット)を必ず使用してください。

  5. 次のコマンドを使用して、あなたのアセンブリを登録します。検証してエラーがないことを、確認してください。

    エラーが、発生した場合、あなたは、アセンブリを再コンパイルして、もう一度登録する必要があります。

    regasm /codebase "<assemblyname>"

メモ

  • 一旦、あなたのアセンブリが、うまく登録されれば、それが、Shellによって使用されている場合、ファイルが、ロックされているため、あなたは、アセンブリを再構築することはできません。

    あなたは、再構築する前に、ハンドラのための代わりのホスト・プロセスを終了することができます。あるいは、再構築する前に、エクスプローラ・プロセスを再起動してください。

  • サムネイル・プロバイダによって、作成されるサムネイルは、キャッシュに格納されます。それらは、大幅に異なる寸法のために再作成されます。

    それ以上の寸法のサムネイルがない場合、あるいは、ファイルが、変更された場合、キャッシュされたサムネイルが、追加/更新されます。

    キャッシュをクリアするために、Disk Cleanup Utilityを使用し、"Thumbnails"オプションをチェックします。

  • アセンブリを非登録するために、GUIDが、最初に登録されたものと同じであることを確認してください。続いて、"regasm /unregister <assembly>"を使用してください。

テキストファイルの説明が入っています。

NetworkDemo

NetworkDemo NetworkDemo

PowerMgmtDemo

実行しても、ウィンドウは、表示されませんでした。

Sensors

Formアプリケーションで作成されています。

Sensors

CommonFileDialogsDemo

CommonFileDialogsDemo

CustomCommonFileDialogsDemo

CustomCommonFileDialogsDemo CustomOpenFileDialog CustomSaveFileDialog

DragAndDrop

ShellObjectDragAndDrop

ファイルをドラッグアンドドロップできます。画像や動画であれば、サムネイルが表示されます。

ShellObjectDragAndDrop

KnownFoldersBrowser

KnownFoldersBrowser

PicturePropertiesEditor

例外が投げられ、実行できません。

例外が投げられ、実行できません。

PropertyEdit

PropertyEdit

SearchApp

SearchApp SearchApp

ThumbnailBrowserDemo

ThumbnailBrowserDemo

StarBackupUsingLibraries

ライブラリなので、単体では、実行できません。

StockIconsDemo

システムアイコンが表示されます。

StockIconsDemo

TabbedThumbnailDemoWinforms

Formアプリケーションで作成されています。

お気に入りリストとブラウザ。html5、css3ページを正常に表示しています。

TabbedThumbnailDemoWinforms

TaskbarDemo

タスクバーを操作するアプリケーション。

TaskbarDemo TaskbarDemo

Progress Barの項目のスライダーで、ダスクバーのアプリケーションアイコンのプログレスバーの状態を操作できる。その他の機能は、確認していない。

TaskbarDemo

「プログラムから開く」で、表示されるアプリケーションリストに表示されるので、注意

txt拡張子のアプリケーション・リスト

ThumbnailToolbarDemoWPF

左側の枠にフォルダ内の画像のサムネイル、右側に画像ファイルを表示する

左側の枠にフォルダ内の画像のサムネイル、右側に画像ファイルを表示する

ShellObjectWatcherSampleWPF

例外が発生した。

ShellObjectWatcherSampleWPF

TaskDialogDemo

例外が発生した。

TaskDialogDemo
このエントリーをはてなブックマークに追加

Home PC C# Illustration

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」