Windows 7 API Code Pack を使ってサムネイルをとってみる

ちょっとした実験レベルでサムネイルを取り出すコードを書いてみた。Windows 7 API Code Pack を使うとかなりお手軽にできます。

最初に、Windows 7 API Code Pack を入手して参照する。NuGet なり、MSDN なりにて。
必須ではないので、自分で IShellFolder などの定義を用意できるのであれば、それでも代用可です。

KnownFolders クラスの static メンバーで Computer とか、Desktop とかがいるのでそこから列挙してみる。

foreach (ShellFolder item in KnownFolders.Computer) {

// とりあえず、ファイルシステムオブジェクトではなかったのでこの条件にした
// デバイス以外も列挙される恐れがあるかも?
if (!item.IsFileSystemObject)
{
     _devicesList.Add(item);
    listBoxDevices.Items.Add(item.Name);
}

}

この例では、ポータブルデバイスを列挙する方法が判然としていなかったので、ファイルシステムではないものだけをピックアップしている。


列挙したフォルダーをさらにたどるとか、ShellFileSystemFolder.FromFolderPath からお目当ての ShellFolder を得て、さらにそこから列挙するか、ShellFile.FromFilePath で一気にファイルをとるかしましょう。

ファイルに対応する ShellObject がとれればこっちのもの。以下のようなコードでサムネイルがとれる。

pictureBoxThumbnail.Image = shellFile.Thumbnail.Bitmap;

shellFile は対象の ShellObject だ。

iPhone を Windows 7 環境で USB 接続している状態で後述するサンプルを動かすとこんな感じでとれる。

image

実装したコードも 100 行ほどで済むので楽ちん。(ただ、Dispose とかきちんとしきれてないかも)

操作的には最初に左上のデバイスの列挙をクリックして右のリストボックスに表示されるフォルダーを選択して真ん中上のボタンを押してを繰り返して、JPEG が出てきたら選んで右のボタンを押すという形。

サンプル:http://sdrv.ms/PbBXIv

ここからファイル操作な話は未確認。Code Pack ベースではできないかもしれないなぁと思っていますが、さて…。

カテゴリー: C#

IS12T でのメール送受信

IS12T で ezweb ドメインのメール送受信についておさらいする。

  1. メールアプリを導入する。
    オフィシャルな方法。
  2. メール転送を利用する。
    あらかじめ ezweb 宛に届いたメールを gmail などに転送するように設定しておく。
  3. iPhone 向けのメールサービスを利用する。(IMAP)
    iPhone からのアクセスを装えるブラウザーを使って、iPhone 向けのメールの設定を行い、その設定情報を使って送受信する。
  4. iPhone 向けのメールサービスを利用する。(EAS)
    iPhone からのアクセスを装えるブラウザーだけでは設定できない、iPhone 向けのメールの設定を行い、その設定情報を使って送受信する。

少なくともこのくらいは方法があると思う。
かんたんに比較表を書いてみた。

  メールアプリ 転送 IMAP EAS
手順の易しさ ×
ezwebのアドレスで送信 ×
絵文字 × ×
受信間隔 手動 or SMS 転送先次第 最短15分 リアルタイム
Peopleハブで見えるか ×
公式の方法か × ×
メール形式 テキスト テキスト (未確認) HTML

1のメールアプリはマーケットプレイスからかんたんに入手できるのでよいとして、3は iPhone を装えるブラウザー、4は iPhone を装いつつ、さらに mobileconfig ファイルを受信できる環境が必要。
また、Windows Phone OS の標準メーラーは HTML メールにしたり、全文返信だったりするので、相手によってはいやがるかもしれない。

3の方法に関しては以下のサイトが詳しい。
■[メモ][KDDI][IS12T][EZwebメール] EZwebメールをWindows Phone OS標準のメールアプリで使う

4の方法は mobileconfig ファイルを表示できる仕組みを持ったアプリ設定手順を踏まえて完全にナビしてくれるアプリ が必要。または、au 回線を使える Android デバイスが必要になりますね。

Visual Studio 2012 言語パック(Language Pack)を入手する

英語版を前提としたアドオン・エクステンションを入れるとキーボードショートカットが壊れるなどの支障が出るので、あらかじめ、言語パックを入れておくとよい。
VS2012 からは無料で手に入れることができるので、お手軽だ。

まずはダウンロードサイトにアクセスする。
http://www.microsoft.com/visualstudio/11/ja-jp/downloads

Visual Studio → 自分のエディション とたどると左側に試用版、右側に Language Pack のダウンロードが表示されるので希望する言語パックのダウンロード言語を選択してダウンロード、インストールすれば OK。

image

image

Visual Studio 2012 からは言語パックがある

Visual Studio 2010 までは別の言語の Visual Studio IDE を使うためには、別の言語の Visual Studio そのものを上書き(追加?)インストールする必要があった。
このため、ショートカットが二つできるなど、面倒くさい面があった。

Visual Studio 2012 では Visual Studio 2012 Language Pack が用意されており、言語パックをインストールするだけでよいこととなった。
逆に、別言語のフルパッケージの DVD を持ってきても「インストールできません」とエラーになるようになったので、落とすだけ損です…。

VS2010/2012 + ReSharper 7用

日本語しか入っていない環境ではキーボードスキームがきちんと設定されないと予想されるので、念のために作ったvssettingsファイルへのリンクをメモ。

ReSharper 7 用:http://wp.me/a19AcI-5P
ReSharper 6.1用:http://wp.me/a19AcI-5Q (2010のみ)

作成は英語の言語リソースを導入した環境で Visual C# の設定でリセットし、ReSharper の Visual Studio スキームを適用した状態で設定をキーボードだけエクスポートしたもの。

ショートカットキーが壊れる、きちんと設定されない場合の復旧用です。
独自に設定していたキーはリセットされるので注意。

Windows Phone デベロッパーセンターでのアプリ更新申請

#wp7dev_jp #wpdev_jp

更新申請のたどり方をスクリーンショット付きで紹介してみます。

image

Windows Phone Dev Center にアクセスして、ダッシュボードを開く。
続いて、左のリンク一覧からアプリを開く。

image

アプリのページではすべてを表示するようにし、更新したいアプリのエイリアスをクリックするとそのアプリのページが開く。

image

上の方にアプリを更新というリンクがあるのでこちらを開くと、更新の申請画面に入れる。
変わった部分だけ入力する、新しいXAPに置き換えるというように対応していけばOK。

なお、一度でも更新のフォームを開いた後は、申請するまではデータが残っているので、ダッシュボードやアプリの画面では未申請のデータとして列挙されるのでそちらを開きましょう。

ForumsReader プライバシーポリシー

4.1.1 アプリで個人情報を収集する場合はプライバシーに関する声明を用意しなければならない
4.1.2 個人情報を共有するアプリは、オプトイン同意または同等の同意を得なければならない
http://msdn.microsoft.com/ja-JP/library/windows/apps/hh694083.aspx より)

上記に対して、ForumsReader およびその開発者は、ユーザーの個人情報を収集、保存しません。
ただし、ForumsReader が表示する MSDN フォーラムについては、運営元が定める別のプライバシーポリシーがありますので下記のページをご参照ください。

http://privacy.microsoft.com/ja-jp/default.mspx

私的メモ:2011-2012 活動状況

すみません、私的メモです。
(使用目的がわかる人はわかると思いますが、そんな時期です)

  • どぼん!さんの掲示板
    Azulean 249 → 343
  • MSDN/TechNetやAnswersは特にカウントせず。

そういえば、わんくまさんの掲示板は復帰しないのだろうか…。

MS12-025によって .NET Windows Forms で印刷設定(プリンター設定)が反映されないことがあるらしい

Update 2012/06/04: KB から Hotfix のリンクが出ています。それを適用することでこの問題を修正することができるようです。実行環境への適用が必要です。

4/11 に公開された MS12-025 を適用すると、.NET の Windows フォームアプリケーションで印刷設定(プリンターの設定)が反映されないことがあるようです。用紙の向きとか、2in1とか、縮小印刷などはうまくいかないようです。(情報源)
もし、.NET(VB.NET/C# 問わず) の Windows フォームアプリケーションで印刷設定が効かないといった不具合に遭遇された、問い合わせを受けた場合は、この更新プログラムによる影響を疑っておきましょう。

なお、http://support.microsoft.com/kb/2671605/ja には以下の記載が追加されています。

マイクロソフトでは、Windows フォーム アプリケーションからの印刷に問題あることを認識しています。これらのセキュリティ更新プログラムをインストールした後で、特定の Windows フォーム アプリケーションで印刷できないか印刷時に指定したプリンターの設定が優先されないことがあります。.NET Framework Windows フォーム アプリケーションから印刷する機能を使用しないシステムには影響はありません。この問題は現在調査中です。

また、GrapeCity さんも一部コンポーネントで同様の問題が生じているとして技術情報を公開されています。

http://www.grapecity.com/tools/support/technical/knowledge_detail.asp?id=32272

本現象の影響を受ける弊社製品は下記の通りです。
・ActiveReports for .NET
・ComponentOne Studio
・SPREAD for Windows Forms
・FlexGrid for Windows Forms
・MultiRow for Windows Forms
・El Tabelle Sheet for Windows Forms
・TrueChart for Windows Forms
・LEADTOOLS
※旧バージョンを含みます。

この一連の問題が影響しているかどうかは、MS12-025 を一度アンインストールすればわかる。ただ、エンドユーザーにセキュリティ更新プログラムを削除してくれとはいえないので、ソフトウェアベンダーとしては対応に困ります。Microsoft は大きな用紙設定で XPS/PDF に印刷してから、別のソフトで印刷し直してくれとのことですけどね…。早いこと修正されてほしいものです。

※この情報は 4/22 投稿時点のものです。将来的には更新プログラムがアップデートされて、問題が発生しなくなると予想されます。

Windows 8 Consumer Preview公開

今日、Windows 8 Consumer Previewが公開されました。
http://windows.microsoft.com/en-US/windows-8/download

とりあえず、ISO をダウンロードできる以下の場所から ISO をダウンロード。日本語版もあります。
http://windows.microsoft.com/en-US/windows-8/iso
プロダクトキーも同じところに書かれているのでメモしておく。

DVDを書き込める環境がない、あるいはインストール先にDVDドライブがないのであれば、Windows 7 向けの USB に書き込むツールがそのまま使えるらしいので、以下からゲット。
http://www.microsoftstore.com/store/msstore/html/pbPage.Help_Win7_usbdvd_dwnTool
(Windows 7 USB/DVD Download tool)
image

このツールをインストール後、スタートメニューから起動し、ダウンロードしておいた ISO ファイルを指定して、USB に書き込むボタンを押せば、書き込める…はず。
image
image
image
image

ISO が 4GB 弱なので、それなりの容量のある USB メモリを使いましょう。

インストールを試すのはまた明日の晩かな。