![EnableWindowsPortableDevicesWPDfeatureinyourDelphiandCBuilderProjects | Embarcadero RAD Studio Delphi C++Builder Blogs](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2020/09/Enable-Windows-Portable-Devices-WPD-feature-in-your-Delphi-and-C-Builder-Projects-3.png?resize=1140%2C675&ssl=1)
Table of Contents
概要
Windowsポータブルデバイス(WPD:Windows Portable Devices)機能により、コンピューターは接続されたメディアおよびストレージデバイスと通信できます。 WPDを使用して、スマートフォン、フラッシュUSBカードなどのデバイスを探索できます。
DelphiおよびC++Builder WindowsアプリケーションでWPD機能を有効にするには、WPDアプリケーションプログラミングインターフェイスに接続するためのWINSOFTのPortableライブラリを利用します。
このライブラリは、評価用のすべての機能を備えた試用版が含まれている商用ライブラリです。 プロジェクトの一部として、Portableライブラリを配布する場合は、別途ライセンスが必要です。
前書き
WINSOFTのPortableライブラリは、デバイスの探索、コンテンツの送受信、コマンドデバイスにも使用できます。 ライブラリは、Media Transport Protocol(MTP)およびMass Storage Class(MSC)デバイスもサポートします。
動作仕様
- Windows 32およびWindows 64
- DelphiおよびC++Builderのバージョン6から10.4のVCLで利用可能
構成および使用
次のインストールビデオでは、RAD Studoで、このライブラリを使用するための構成手順を説明しています。
ポータブルライブラリを使用する際のコードや、動作は次のビデオでご確認いただけます。
開発
![portable-demo-ui-9735813](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2020/09/portable-demo-ui-9735813.png?resize=504%2C357&ssl=1)
ユーザーインターフェースはシンプルに見えますが、背後では、このデモのように多くのプロセスが進行しています。コンボボックスを使用すると、使用可能なデバイスを選択でき、TreeViewを使用すると、そのポータブルデバイスでフォルダーを開いてコンテンツを探索できます。
また、[Download]、[Upload]、[Delete]ボタンはそのまま機能します。[Download]をクリックすると、ファイルを保存するためのダイアログボックスが開きダウンロードを行います。[Upload]では、ファイルをアップロードします。[Delete]では、選択したポータブルデバイスから選択したファイルまたはデータが削除されます。
このPortableライブラリを使用するには、UsesリストでPortableユニットを宣言する必要があります。 また、デバイスを制御するためにいくつかのオブジェクトインスタンスが必要です。たとえば、利用可能なポータブルデバイスを取得するためのTDeviceManagerや、フォルダーとファイルを表示するためのTDeviceContentなどです。
OnCreateイベントを確認しましょう。
1 2 3 4 5 6 7 8 9 10 11 |
procedure TFormMain.FormCreate(Sender: TObject); begin IdList := TStringList.Create; DeviceManager := TDeviceManager.Create; ComboBoxDevice.Items.Add(''); ComboBoxDevice.ItemIndex := 0; for var I: Integer := 0 to DeviceManager.DeviceCount - 1 do ComboBoxDevice.Items.Add(DeviceManager.Device[I].FriendlyName); end; |
ご覧のように、DeviceManagerインスタンスを使用して、利用可能なポータブルデバイスを取得しています。
また、選択したポータブルデバイスから利用可能なコンテンツの取得に役立つAddChildren関数もあります。この場合、親子階層で表示を行う TreeViewコンポーネントを使い、適切なスタイルでコンテンツを表示しています。
![demo-action-delphi-and-c-builder-vcl-wpd-2309896](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2020/09/demo-action-delphi-and-C-Builder-VCL-WPD-2309896.png?resize=497%2C343&ssl=1)
選択したファイルをポータブルデバイスからどのように取得しますか? TDeviceObjectとTFileStreamが必要です。 デバイスオブジェクト内に選択されたオブジェクトがある場合は、保存ダイアログが開き、TDeviceContentを使用して、データの読み取りを開始できます。
1 |
Content.Read(DeviceObject.ID, FileStream); |
ご想像のとおり、ファイルのアップロードはContent.Writeのようなものです。
それを削除するには、Content.Delete関数を使用します。
WINSOFTのPortableライブラリには、まだ他に機能があります。実際に使用してその機能をご確認ください!
Portableライブラリは、WinSoft社の製品です。この記事に記載された機能を利用するには、WinSoft社のサイトからPortableライブラリを購入する必要があります。Portableライブラリに関するサポートは、WinSoft社によって提供されます。
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition