WDD メモ Windows 7 / Windows Server 2008 R2 アプリケーションの Windows 8 互換性対応
- WDDのメモです。聞き漏れ、聞き間違えなどもあると思いますのでご参考までに。
Windows 7 から Windows 8 への移行
- デスクトップアプリ→デスクトップアプリ、メトロスタイルアプリ への移行
- Webアプリ→Webアプリ、メトロスタイルアプリ
- デスクトップアプリは、デスクトップアプリへの移行が多いはず。
アプリケーションをインストールしようとしたら「OSのバージョンが違います」というメッセージが表示された場合
- Windows8の内部バージョンは、6.2
- 回避策
- VersionLie Shimを利用する
- ACT を利用する
- 対処策
- OSのバージョンではなく、機能を検索する。
- VerifyVersionInfo Win32 API でチェックする
- Operating System Versioning
アプリケーションをインストールしようとしたらフォルダへのアクセスが拒否された
- \program files\WindowsApps はメトロスタイルアプリのインストールフォルダ
- TrustedInstallerが管理
- 対処策
- WindowsApps フォルダにはアクセスしないようにする
- Security App Detection Rules Update
pdfファイルが Windows Reader で表示される
- アプリケーションから規定のアプリケーションを設定することができない。 候補になるだけ。
- 複数ある場合は、ユーザが選択する
- IApplicationAssociationRegistration API の以下のメソッドは利用しない
- QueryAppIsDefault/QueryAppIsDefaultAll
- QueryCurrentDefault
- SetAppIsDefault/SetAppIsDefaultAll
- 解決策
- IApplicationAssociationRegistrationUI::LaunchAdvancedAssociationUI APIを利用して、選択のダイアログを表示させる
- File Type and Protocol Associations Model
WebサイトへのリンクをクリックしたらIEが全画面で表示される
- インターネットオプション→プログラム→リンクの開き方を選択します→常にデスクトップ上のInternet Explorer で を選択する
- 「デスクトップで Internet Explorer タイルを開く」のチェックをつけるとIEのタイルを押すとデスクトップのIEが開く
- Desktop Apps May Not Be Visible after Launching the Default Web Browser
- メモ:下記の設定を追加するとメトロスタイルのIE起動時にダイアログが表示される
- < meta http-equiv="X-UA-Compatible" content="requiresActiveX=true"/ >
- http://shinichiaoyagi.blogspot.jp/2012/02/win8-metrostyle-ie-desktop-ie.html
「互換性」タブに「デスクトップコンポジションを無効にする」がなくなった
サービスの状態がタスクトレイに反映されません
- セッション0とセッション1のプロセス間通信ができない。電源管理の問題
- サスペンド状態に移行するとき、起動しているアプリケーションに対して、WM_POWERBROADCASTというメッセージを投げる
- スリープ状態では、すべてのシステムアクテビティが中断
- 接続維持スタンバイ(Win8追加)
- スマートフォーンのような電源管理
- Metroスタイルアプリ:ライブタイルのお更新、新着メールのダウンロード
- デスクトップアプリ:Desktop Activity Moderator(DAM)により管理
- Session1以上のプロセス
- 接続維持スタンバイ中は中断
- Session0のプロセス
- 必要に応じて再開
- DAMからWM_POWERBROADCASTの通知を受ける?には、Windowがある場合は、RegisterSuspendResumeNotification コンソールアプリの場合は、PowerRegisterSuspendResumeNotification で登録する必要がある
- または、ソースコードを修正できない場合はPromoteDAM Shim を利用する
- Desktop Activity Moderator
- アプリケーションの電力効率を向上させる
.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
- Windows7と同様
- Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008, Windows 7, and Windows 8
Windows8ネイティブモード
- Application (Executable) Manifest