技術メモ

ちょっと調べたことを書いてみます。

Windows 10 TP Build 9926 で古い Windows Update を表示する

1月に公開された Windows 10 TP では、コントロールパネルにあった Windows Update のアイコンが非表示になっています。これを表示できるように変更するには、下記のレジストリを1から0に変更するだけのようです。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX]
"IsConvergedUpdateStackEnabled"=dword:00000000

参考


Need the old Windows Update, not the new Windows Update - Microsoft Community

Windows 8.1 上のWPF アプリで、タッチキーボードを表示させたい

突然ですがデスクトップ版 IE ではテキストボックスにタッチしてもタッチキーボードは自動的には表示されません。でも、デスクトップ版 Chrome ではテキストボックスをタッチするとタッチキーボードが表示されます。この違い意外と気になってます。そのためか、Surface や 8インチタブレットとかでは、デスクトップ版 IE は使いづらいですね~。

WPFアプリでも普通の作り方では、テキストボックスでタッチしただけではタッチキーボードは表示されないです。でも工夫すればさすがにできるだろうって、ググってみるとinfragisticsさんのブログにタッチキーボードを呼び出す方法が載っていました。

ここのサンプルコードでは、テキストボックスをタッチするとタッチキーボードが表示されます。ちなみに、TextBoxの代わりにWebBrowserコントロールを配置した際にも、(このサンプルレベルでは)サイトに表示されたフォームをタッチするとタッチキーボードが表示できたのでこのやり方使えそうです。なお、ここで使われている APIWindows 8.x からなので、Windows 7タブレットでは動作しなません。

IE10 でメンテナンスポリシーが廃止に&その代替機能

IE10からメンテナンスポリシーが廃止され、IEAKや基本設定を代替機能として利用せよというのが、下記のMSDNドキュメントに記載されています。グループポリシーでIEの設定を展開していた場合、そのままでは動作しなくなるので知らないと混乱することになるかと思います。

Internet Explorer のメンテナンスの代替機能
http://technet.microsoft.com/ja-jp/library/hh846772

ただ、このコンテンツの内容は、実際の挙動と異なる所があり気になっていたのですが、最近、英語版は削除されていることがわかりました。この記事は、どうも古い内容だったようです。

http://technet.microsoft.com/en-us/library/hh846772

で、新しく記載されている内容は、下記。

Appendix B: Replacements for Internet Explorer Maintenance
http://technet.microsoft.com/en-us/library/jj890998.aspx

結構内容が変更になっていることがわかります。実際の挙動とも一致しているみたいです。

Windows Server 2012 で windows.old フォルダを消すためにディスク クリーンアップを追加する

Windows Server 2012 では、デフォルトでは「ディスク クリーンアップ」がインストールされていない。そのため、2012 のベータ版や 2008 がインストールされたディスクにインストールした際に残る「Windows.old」フォルダが消せない。
「ディスククリーンアップ」をインストールするためには、 PowerShell で、「Add-WindowsFeature Desktop-Experience」コマンドを実行し「デスクトップ エクスペリエンス」を追加する。再起動後、「ディスク クリーンアップ」が利用可能となる。

参考

Tip 51: Cleanup on Isle 3! Get Back Disk Cleanup Wizard on Windows Server 2008 & 2012 - Hidden Treasures from the great white sandy North... Beach ;) - Site Home - TechNet Blogs

WDDメモ メトロスタイルアプリ関連

  • メモです。聞き間違えなどがあると思いますので参考までに。

Metroスタイルアプリ

Metroスタイル

  • コンテンツに没入できるスタイルにする
  1. スタイルデザイン
    • できるだけ不要なものは省く
  2. 早くて滑らか
    • アニメーションをたくさん使う
    • マウスなどの動作に対して反応をする
  3. きれいなスケーリングと使いやすいスナップ
    • スナップは2つまで表示させることができる
    • 100%の画面とスナップで表示させるデザインを考える必要がある
  4. 適切なコントラクトの実装
  5. タイルの有効活用
    • タイルでリアルタイムな情報表示
  6. いつでもつながっている
    • オフラインでも動くようにする
  7. クラウドとの連携
  8. メトロの原則に準拠

デザイン

  • 基本ナビゲーションがない
  • ハブ→スポーク→詳細 という3段階の階層スタイル
    • 階層システムの要素:大量のコンテンツ、複数のセクションやカテゴリがある
    • フラットシステム:一画面で完結可能(IE10など)、ドキュメント、ゲーム、IMなど
  • デザインはシンプル
    • デザインガイドが存在するのでそれに従ってある程度同じ動作ができる
    • レイアウト:グラデーションはなくして線で堺をつける
    • 詰め込みすぎない、余白が大切

画面サイズや方向に応じたデザイン

  • 1024/768 最小
  • 1366/768 以上が推奨
4つのスタイル
  • 4つのスタイルに対応したアプリを作る必要がある
    • FullScreenLandscape(全画面)
    • Filled(スナップの余分)
    • Snapped(スナップ、横幅は320pxに固定される。推奨サイズの画面サイズではないとスナップ表示は不可)
    • FullScreenPortrait(縦画面)
考慮点
  • スクリーンサイズ
  • スナップ、ポートレイトの画面に対応
  • ビジュアルなフィードバック
    • たとえばマウスの動きに合わせたタイルの動き
  • 解像度、→高解像度に対応する
    • SVG→ 解像度に依存しない
    • ビットマップは100%、140%、…というように低い解像度と高い解像度用の画像を用意する
  • グリッドレイアウトが重要
    • 方眼紙にアプリを配置するように
    • 1ユニット 20px×20px
    • サブユニット 5px×5px
    • 1カラム 80px

チャーム、アプリバー

  • アプリバーは、上 or 下に配置、アイコンの追加、変更が可能、色も変更可能
    • クリックしてほしいことを意図するような多数のアイコンは

共通化してアプリバーに作る

    • グローバルコマンドは右側に
  • チャーム:検索、共有、設定 etc がある
    • 検索方法は、チャームで実現することを考える
  • 共有 クリップボードの進化系
    • 他のアプリにデータを投げる
    • ソースの共有
      • オンラインコンテンツへのリンクの共有
    • ターゲットの共有

フライアウト

  • 一時的に表示、ちょっとしたもの

パンの注意点

  • 横と縦の動きを同時に作らないようにする

タイル

  • タイルはアイコンではない
    • タイルはアイコンではなく、アプリの顔
    • 表玄関、最新情報、ミニアプリ、フォトフレーム、リマインダー、News情報、アプリの延長、次の予定
  • 一つのアプリでも複数のタイルを作成することができる
    • セカンダリタイル
  • アプリバーにピン留め
  • 1×1は必須 2×1はオプション
  • ライブタイルも可能

トースト通知

  • WINDOWS PUSH NOTIFICATION SERVICE (WNS) を利用するなど方法がある

セマンティックズーム

  • 全体を俯瞰してみる
    • ロゴを使う:小さいとき
    • 詳細を表示:大きいとき

フォント

  • SegoeUI :ウエイト4つ
  • 日本語は、メイリオUIになるだろう。ただし、ウェイトが2つしかない。

ライフサイクル

  • 稼働可能←→サスペンド→終了
    • サスペンドに遷移するイベントがあるが終了に遷移するイベントはない
    • メモリが少なくなると勝手に終了することがある
    • サスペンドのタイミングでデータを保存する必要がある

タッチ

  • 長押し、タップ、スライド、スワイプで選択、ピンチでズーム、ローテート、縁からアプリバー、チャーム

開発環境

  • VS11にはテンプレートがある
  • シミュレータを準備している
    • 解像度を変更する事ができる
    • タッチをシミュレートする事が可能
    • ポートレイト表示が可能
    • GPSのエミュレートにも対応

Metroスタイルアプリ

  • appx という一つのファイル zipファイル形式
  • Windows Store からインストール
  • マシンではなくユーザに対してライセンスを付与する
  • 企業向けの展開方法もある

リンク

WDD メモ Internet Explorer 10 の概要 /Internet Explorer 10 そしてそれ以降に対応するためには?

  • メモで、聞き漏れ、聞き間違えがあると思いますので参考までに。

Internet Explorer 10 の概要

  • IE8は日本で一番利用されている。
  • IE9は、3割を超えている。今後トップシェアになると思われる。
  • HTML5
    • モバイル向けのHTML5のサイトが増えてきている。
    • SkyDrive は、HTML5を導入
    • IE9のファイルアップロード機能は、Silverlight
    • IE10は、ファイルAPIを利用している
    • HTML5でゲームや動画 プラグイン不要で対応可能
    • Just A friend HTML 5を利用したデモ
  • IE10のWindows7版のリリースは不明。
  • IE10は、2つのブラウザを搭載
    • デスクトップ版、メトロスタイル版
    • レンダリングエンジンは同一
    • Metroスタイル版は、フルスクリーンのみ
    • インターネットオプションのダイアログは、メイリオUIを使うことでダイアログが大きくなった
    • バージョン情報
      • 新しいバージョンを自動的にインストールする
      • 自動アップグレード機能
      • Windows Updatteとは違う仕組み
      • 自動アップグレードが他のブラウザでは主流
  • IE10はIE9のブラッシュアップ版、UIはほとんど変わりがない
  • Webが主役
    • Metroスタイル版のデスクトップ版との違いは、タッチ操作向け、クロムレスUI、プラグインフリーなど
  • 高速、滑らか
    • ハードウェアで高速化されたブラウジング
    • パフォーマンス最適化、IE9より高速化
  • 信頼
    • スマートスクリーンフィルタ、マルウェアのダウンロードなどをチェック、追跡防止
    • 拡張保護モード(新規)
      • Metroスタイルではデフォルトで有効
      • AppContainerというIL。サンドボックスみたいなもの。
      • デスクトップ版でも拡張保護モードで動かすオプションがある。
    • 今までは、64bit 版でも32Bit版のIEがデフォルトで動いていた。これは、プラグインがないなどの理由があった。
    • Metroスタイル版は64Bit版で動いている
    • デスクトップ版は、32Bit版で動作する
    • ただし、デスクトップ版で拡張保護モードで動かすと64Bit版で動作するので、プラグインが動作しないなどの問題が起きる可能性がある
    • 拡張保護モード
  • メモ
    • IE10では、Qurksモードのサイトは、HTML5 Quirksモードが動作するのでIE5Quirksモードで動作させる場合には、下記のように明示的に設定する必要がある
      • <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" >

企業向け設計

  • IE10向けIEAK もリリース

標準準拠&コンパチビリティ

Internet Explorer 10 そしてそれ以降に対応するためには?

  • IEは一つの実行ファイルでMetroスタイル版も動かすようになっている。
  • Silverlightでしかできないことはまだある。すべて、HTML5でできると思ってはいけない。
  • セーブマークアップ(他のブラウザでも同じように使えるようにするポリシー)
  • 解釈にずれがある場合は、IEでの実装の優先度を下げる
  • 安定した仕様を実装するようにする
  • 実装する仕様は33個に増えた。
  • JavaScriptエンジンは、chakra Metroスタイルアプリも同一のものを利用する
  • Compact Inspectorを使おう
  • タッチファーストUI
    • プラグインをチェックして、プラグインが必要であればプラグインを呼び出す
  • サイトからMetroアプリを呼び出す

WDD メモ Windows 7 / Windows Server 2008 R2 アプリケーションの Windows 8 互換性対応

  • WDDのメモです。聞き漏れ、聞き間違えなどもあると思いますのでご参考までに。

Windows 7 から Windows 8 への移行

  • デスクトップアプリ→デスクトップアプリ、メトロスタイルアプリ への移行
  • Webアプリ→Webアプリ、メトロスタイルアプリ
  • デスクトップアプリは、デスクトップアプリへの移行が多いはず。

アプリケーションをインストールしようとしたら「OSのバージョンが違います」というメッセージが表示された場合

  • Windows8の内部バージョンは、6.2
  • 対処策
    • OSのバージョンではなく、機能を検索する。
    • VerifyVersionInfo Win32 API でチェックする

アプリケーションをインストールしようとしたらフォルダへのアクセスが拒否された

  • \program files\WindowsApps はメトロスタイルアプリのインストールフォルダ
    • TrustedInstallerが管理
  • 対処策
    • WindowsApps フォルダにはアクセスしないようにする

pdfファイルが Windows Reader で表示される

  • アプリケーションから規定のアプリケーションを設定することができない。 候補になるだけ。
  • 複数ある場合は、ユーザが選択する
  • IApplicationAssociationRegistration API の以下のメソッドは利用しない
    • QueryAppIsDefault/QueryAppIsDefaultAll
    • QueryCurrentDefault
    • SetAppIsDefault/SetAppIsDefaultAll
  • 解決策
    • IApplicationAssociationRegistrationUI::LaunchAdvancedAssociationUI APIを利用して、選択のダイアログを表示させる

WebサイトへのリンクをクリックしたらIEが全画面で表示される

「互換性」タブに「デスクトップコンポジションを無効にする」がなくなった

  • Vistaからの機能、デスクトップコンポジションを無効にできない。(デスクトップコンポジション:Windowsフィリップ、サムネイルなどが使える。Aeroのみ)Windows8は、Aeroグラス以外でも利用できる
  • DwmEnableComposition API は成功を返却しても何もしない
  • デスクトップコンポジションのShimは無効化されている。
  • Desktop Window Manager Is Always On

サービスの状態がタスクトレイに反映されません

  • セッション0とセッション1のプロセス間通信ができない。電源管理の問題
  • サスペンド状態に移行するとき、起動しているアプリケーションに対して、WM_POWERBROADCASTというメッセージを投げる
  • スリープ状態では、すべてのシステムアクテビティが中断
  • 接続維持スタンバイ(Win8追加)
    • スマートフォーンのような電源管理
    • Metroスタイルアプリ:ライブタイルのお更新、新着メールのダウンロード
    • デスクトップアプリ:Desktop Activity Moderator(DAM)により管理
  • Session1以上のプロセス
    • 接続維持スタンバイ中は中断
  • Session0のプロセス
    • 必要に応じて再開
  • DAMからWM_POWERBROADCASTの通知を受ける?には、Windowがある場合は、RegisterSuspendResumeNotification コンソールアプリの場合は、PowerRegisterSuspendResumeNotification で登録する必要がある
  • または、ソースコードを修正できない場合はPromoteDAM Shim を利用する

.NET 3.5アプリが起動しない

  • Windows7からアップデートした場合は、インストールされているが、通常にインストールするとインストールされない。
    • WindowsUpdatteよりインストール
    • 再配布可能パッケージとしてインストール
  • 解決策
    • イメージからコピー
      • \sources\sxs\
      • xcopy e:\sources\sxs\*.* c:\dotnet35 /s
      • Dismコマンドでインストール
      • Dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:c:\dotnet35 /LimitAccess
    • レジストリに下記を設定しておくと、.NET 3.5アプリを起動時に表示されダイアログで「この機能をダウンロードしてインストールする」を選択すると下記のローカルのファイルを参照する
      • xcopy e:\sources\sxs\*.* c:\dotnet35 /s
    • [HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing] “LocalSourcePath”=”c:\dotnet35”
  • .NET Framework 4.5 Is Default and .NET Framework 3.5 Is Optional

VB6.0

Windows8ネイティブモード

  • マニフェストファイルにWindows8ネイティブであることを記載する
    • {4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}
    • 何も設定しないと、Vistaモードとなる