問題タブ [wpd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - シンプルな WPD/PTP/MTP 画像取得の c# の例
デジタルカメラで撮影した画像をダウンロード(テザリング)するだけの超シンプルなソフトウェアを作りたいです。
私が理解している限り、画像/メディア転送プロトコル (PTP/MTP) で Windows ポータブル デバイス (WPD) を使用して画像を取得できます。
ここで WPD の使用を開始する方法の例を見つけました。
さらにいくつかの質問があります。
- WPD は外部 HDD も列挙します - デバイスがカメラであるかどうかはどうすればわかりますか?
- 別のカメラが接続されている場合に通知を受け取るにはどうすればよいですか?
- カメラが写真を撮ったときに通知を受け取るにはどうすればよいですか?
c# - WPD を使用してファイルを Windows Phone C# にコピーする
MTP 経由で少なくとも 1 つのファイルを Windows Phone にコピーしたいと考えています。このチュートリアルに従って、電話機に接続し、電話機からコンピュータにファイルをコピーすることができます: WPD: コンテンツの転送 しかし、逆方向 (コンピュータから電話機) にファイルをコピーすることはできません。これは私のコードです:
このコードをいくつかのデバイスでテストしました。通常の mp3 プレーヤーで動作し、チュートリアルが正しいと仮定すると、Android フォンでも動作します。しかし、このコードを 2 つの異なる Windows Phone で実行すると、次の例外が発生します。
この行で:targetStream.Write(buffer, (int)optimalTransferSizeBytes, pcbWritten);
バッファ サイズは 262144 バイトですが、ファイル サイズはわずか 75 キロバイトです。誰かがこの問題を解決する方法を知っていることを願っています。
こんにちは j0h4nn3s
c# - コミット時に WPD MTP ストリームがハングする
次のコードを使用して、Windows ポータブル デバイス API を使用して、FileInfo オブジェクトでラップされたファイルを MTP デバイスにコピーしています。
これで問題なく動作しますが、小さなファイル (この場合は数 kiB のテキストのみの .m3u ファイル) を書き込む場合、次の行
実行に非常に時間がかかります。数 MiB のファイルを書き込むときは、何も問題はありません。なぜこれが起こっているのか、どうすればこれを修正できるのかを知りたいです。ありがとう!
delphi - Delphi で WPD デバイス タイプを判別する
Delphi で使用している WPD デバイスのタイプを特定しようとしています。
私のアプリケーションでは、デバイスが電話かカメラか、またはそれが何であるかを知る必要があります。
この MSDN の記事によると、WPD デバイス タイプは WPD デバイス プロパティであり、デバイスのプロパティを読み取ることで読み取ることができます。
次に、この MSDN 記事によると、プロパティと属性は、カテゴリ GUID とそのカテゴリの一意の ID の 2 つの部分を持つ PROPERTYKEY 構造として定義されます。
GUID と Uinique ID を見つけましたWPD_DEVICE_TYPE
。
WPD_DEVICE_TYPE_FMTID : TGuid = '{26D4979A-E643-4626-9E2B-736DC0C92FDC}';
WPD_DEVICE_TYPE_PID = 15;
私の問題は、情報を取得する方法を理解するのに苦労していることです。
と同じような手順にIPortableDevice
なると思っていましたが、そうではありません。.Property
IPortableDeviceContent
ただし、IPortableDeviceManager
と呼ばれる手順がありますGetDeviceProperty
。
WPD デバイスのフレンドリ名を取得できるサンプル コードがあります (PortableDeviceApiLib_TLB.pas ユニットから)。
コード:
デバイスのプロパティを取得するための私のテスト コードは次のようになります (基本的には同じ...ほぼ...)。
この MSDN の記事に よるとpData
、pcbData のサイズを取得するには、NULL に設定し、pcbData をゼロに設定する必要があります。
私がやっている。
誰かがそれを正しくするために私が何をする必要があるかを説明するのを手伝ってもらえますか?
編集: デバイスタイプを取得するpython にあると思われるこのコードを見つけました。
私はそれをデルフィに移植しようとしています。
api - WPD デバイスのマウント ポイントを取得する
私はしばらく WPD API を使用してきましたが、問題が次々と発生するようです。
1 つの問題を解決すると、別の問題が発生します。でもね、それが人生。
WPD デバイスがストレージ デバイスなのか電話なのかなどを判断しようとしています。
結局のところ、iPhone などのデバイスは電話として認識されるように設定されていませんが、代わりに一般的なデバイスとして認識されますWPD_DEVICE_TYPE
。
ただし、ストレージ デバイスとして Windows に提示されます。
外付けハード ドライブ、SD メモリ カード リーダー、およびその他の従来のストレージ デバイスを接続すると、WPD API によっても認識されますが、Windows では専用のマウント ポイントも取得されます。
外付けハードドライブを接続すると、機能カテゴリ オブジェクトが 1 つになり、そのオブジェクトの値がそのドライブのパスになりますE:
。
良い。すごい!
だから私の質問は: WPD デバイスにマウントポイントがあるかどうかをどうにかして読み取ることができますか? 確かに機能オブジェクトはそれを持っていることを示していますが、マウントポイントが利用可能であることを示す指標値がある可能性はありますか?
c# - Android から Windows PC にファイルを転送するために指定するファイル パスは何ですか?
AndroidフォンからWondows PCに画像ファイルを転送するためのC#Windowsアプリケーションを作成します-電話をPCに接続するとき(データケーブルを使用)。モバイルからファイルにアクセスするために C# でパス"Computer/Nuxes5/..."を指定した場合(Windows エクスプローラーのアドレス バーから取得)。次に、間違ったパスを取得します。以下は、ファイルにアクセスするために私が与えたコードです。
C# を使用してモバイル ファイルにアクセスする方法を教えてください。
c# - アプリケーション用の MSSQL LocalDB の保存
LocalDB.mdf ファイルを使用してアプリケーションをビルドしてきましたが、本番環境で使用して、インストール可能なアプリケーションを作成する必要があります。
調査の結果、そのようなファイルを保存するのに最適な場所は/Appdata/Local/
フォルダーにあるようです。
LocalDB.mdf ファイルがまだ存在しない場合、または削除されている場合は、そこに新しい LocalDB.mdf ファイルを作成するつもりです。
アプリ リソースに事前に作成された LocalDB.mdf ファイルがあり、最初の実行時にこのフォルダーにコピーしたかった/Appdata/Local/
のですが、アクセスが拒否されましたというエラーが表示されます。
そのフォルダに空のファイルを作成できます。
コードは次のとおりです。
さらに、私はこれを正しい方法で行っていますか?