2015年9月21日月曜日

Windows 10:タスクバーのアイコンが重複する問題

2015/10/1追記:
Cyberfoxについては、41.0.2で下記の問題に対応したようです(既に直した後のため未確認)。

Windows 10にアップグレードしてから時々おかしなことが起きるようになりました。
下図はタスクバーにピン留めしたCyberfoxのアイコンです。これをクリックしてCyberfoxを開くと、ピン留めしたのとは別にCyberfoxのアイコンがもう一つ表示されます。使用する上で問題はありませんが、実に気持ち悪い。


下図はこの状態で7+ Taskbar TweakerのTaskbar Inspectorを表示させたところ。ピン留めしたのと開いているCyberfoxとは別のIDになっています。


一方、下図は同じくピン留めしたWaterfoxを開いた場合です。ピン留めしたIDからWaterfoxは開いています。


ただしこの現象はCyberfoxだけで起きるわけではありません。Waterfoxで起きる場合もありますし、ググってみるとFirefoxや全く別のアプリケーションで起きることもあるようです。
Cyberfoxのフォーラムでこの問題が取り上げられていました。

Cyberfox in W10 taskbar - 8pecxstudios Support Forums

この中でレジストリのTaskBarIDsというキーについて触れられています。FirefoxやCyberfoxをインストールすると、ここにアプリケーションのIDが登録されるようです。ピン留めした際、アイコンがこのIDにならないことが原因みたいです。


フォーラムではこのTaskBarIDsを削除してしまう方法が紹介されています。どうやら必須のキーではないようです。自分の環境では以下の2箇所にありました。

HKEY_CURRENT_USER\Software\Mozilla\Cyberfox\TaskBarIDs
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Cyberfox\TaskBarIDs

この2つを削除したところ、ピン留めしたアイコンからCyberfoxが開くようになりました。


なおWaterfoxの場合はFirefoxのキーの中に登録されており、Waterfoxでこの現象が起きた時にはこれを削除しました。

しかし、このTaskBarIDsはどうもインストールを実行するとまた登録されてしまうようです。バージョンアップの度に削除しなければなりません。やはりTaskBarIDsに登録されたIDでタスクバーにピン留めしないことには根本的な解決になりません。

MSのコミュニティで解決法があるのを見つけました。

タスクバーにピン留めをすると同じアイコンが 2 つ表示される - マイクロソフト コミュニティ

ここで紹介されているwin7appidを試しました。このソフトを適当な場所に置き、コマンドプロンプトから以下のように実行しました。

win7appid1.1.exe [Cyberfoxのショートカットのフルパス] [TaskBarIDsに登録されたID]

実行結果:


これにより、ピン留めしたCyberfoxのアイコンはTaskBarIDsに登録されたIDになりました。


この問題は同じWindows 10環境で起きないこともあり、 何が理由なのかはわかりません。

2015年8月28日金曜日

Windows 10:U+2661の挙動

Windows 10上でのコメント表示は、製品版ビルドになっても結局プレビュー版で見たのと変わってないようでした。日本語版にGulimやMingLiU(PMingLiU)はインストールされておらず、Gulim化やMingLiU化は起きません。
やはりストレージ容量への配慮から、よけいなフォントはオプション扱いにしているようです:

Windows 10 の一部のアプリでテキストの一部が正方形で表示される理由 - Microsoftサポート

それにしてもGulim化のケースが妙なのでもうちょっと見てみました。
下図はひらがなのみのコメント(上段)と、その先頭にGulim化文字U+2661を置いた場合(下段)を比較しています。


10ではひらがながGulimのかわりにゴシックで表示されます。ただしMS Pゴシックではなく、なぜかMS UI Gothicになっています。MingLiU化だと代わりに表示されるのはMS Pゴシックです。


下図は下段のコメントの先頭へさらにSimSun化文字U+2609を追加したところです(U+2588はMingLiU属性も持つためここでは使いません)。


8.1以前ならU+2609に従ってひらがなもSimSunに変化します。一方10では何も変化が起きません。
これがMingLiU化の場合だと、10でもひらがなは8.1以前と同様に変化します。


上の10でのGulim化文字による挙動は、U+2661とひらがなが直接隣接しないと起きなくなるようです。


Gulim化を起こさないU+2661の隣接は、CJKフォント変化そのものを無効化しているように見えます。

ところで、上の図の上段ではU+2661が豆腐になっています。
SimSunにトランプのマークは無いため、8.1以前であればフォントリンク先であるMicrosoft Sans SerifのU+2661が代替で表示されます。10のSimSunのリンク先は増えているものの、途中までは8.1と同じです。


Microsoft Sans Serifを調べてみたところ、10ではこのフォントからU+2661が消えていました。元々ここにあったのはバグだと思われるので、10でようやく消えたのでしょう。


しかし、それであれば同じくリンク先のMS P明朝で表示できるはずです(現に他のトランプマークはそうであると思われます)。

ところがあらためて下図のように見てみると、どうもそういう問題ではないようでした。デフォルトが豆腐です。
この豆腐はArialではないかと思います。Arialに白抜きのトランプマークはありません。


そしてSimSun化させた時も、フォントリンクは使われず豆腐のままです。
ひらがなと隣接したケースだけ、8.1と同じようにSegoe UI Symbolが表示されています。Segoe UI Symbolが表示されるのは8以降の挙動ですが、フォントリンクとは別の理由によるものと考えられます。
豆腐は10特有の挙動なのか、Gulimが無い場合の挙動なのかは確かめていません。

2015年8月3日月曜日

Windows 10:OneDriveフォルダの変更

Windows 8.1から10にアップグレードしてみて、デスクトップPCでは今のところ大きな問題はありません。
ところがタブレットでは一つ困ったことが起きました。OneDriveフォルダをCドライブではなくSDカード(Dドライブ)に保存していたのですが、10ではこれが認識されずエラーになってしまいます。


OneDriveの設定からSDカードの場所を指定し直してもエラーになります。


デスクトップPCでも元々C以外のデータドライブ(HDD)に保存していました。しかしそちらではこのようなエラーは起きていません。SDカードだとだめなんでしょうか。
とりあえず解決するのは簡単でした。SDカードをCドライブに作成した空フォルダにマウントすれば問題ありませんでした。

あらかじめ「C:\SD」というフォルダを作り、コントロールパネルからディスクの管理を開きます。
Dドライブを選択→「ドライブ文字とパスの変更」


「追加」


「次の空のNTFSフォルダにマウントする」で「C:\SD」


後はOneDriveの設定からC:\SD経由でSDカード内の場所を指定すればエラーは出ませんでした。
そう言えば8.1の時からSDカードに保存したアプリがタスクバーにピン止めできなかったのですが、それもこれで解決しました。

上の方法を試す前に、SDカードに仮想HDDを作って解決したという情報を見つけていました。

Windows10のOnedriveフォルダは移動できない? - マイクロソフト コミュニティ

これも試したところ確かにできました
ただしVHDは自動では認識されないため、起動時に自動でマウントする仕掛けが必要でした。バッチファイルでdiskpart.exeを起動して、VHDをマウントするスクリプトを実行させます。

diskpartに実行させるスクリプト(d:\vhdmount.txt):
select vdisk file="d:\Data.vhd"
attach vdisk

上のスクリプトをdiskpartに実行させるバッチファイル(d:\automount.bat):
diskpart -s d:\vhdmount.txt

このautomount.batをタスクスケジューラに登録し、トリガーをログオン時に設定しました。
Windowsを起動したところ、バッチファイル実行→仮想HDDマウント→OneDrive同期開始となり一応うまくいきました。
と言っても起動時にコマンドプロンプトが表示されてしまうこと、特にメリットがないことから前者の方法でやることにしました。

2015年7月26日日曜日

Chrome 44:表示フォントの変更

Chrome 44になって、コメントの表示に使用されるフォントの一部が変わったことに気づきました。
下図のトランプマークのうち、白抜き(U+2661・2662・2664・2667)はArialにありません。


43と44では、この白抜きの4つのフォントが変わっています。
この変更は8.1も7も同じようですが、たまたま見た環境が8.1はMS Officeなし・7はOfficeありでした。この2つをArial Unicode MSの有無の違いとして見てみます。


44ではArial Unicode MSが使われなくなったということだろうと思います。

代わりに使われているのはSegoe UI Symbolのようです。
IEでも8.1であればこの白抜きをSegoe UI Symbolで表示させることができるので、比較してみます。


Chromeの方が大きく表示されますが、字形は同じのようです。


他の例も見てみます。下図の音符マークのうち、U+2669・266CはArialにありません。


Arial Unicode MSありの場合:


下図の指差しマークはいずれもArialにありません。


Arial Unicode MSありの場合:


ちなみに、このケースはIEだと8.1と7で表示がだいぶ異なります。


これらの文字のうちU+261C・261EはGulim化文字、他の4つはフォント変化の属性を持ちません。後者は8.1ではChrome 44と同じもの、つまりSegoe UI Symbolが表示されているように見えます。先のU+2661と同じような現象かもしれません。

Arial Unicode MSが使われなくなったことにより、Chrome 44ではOfficeの有無にかかわらず同じ表示になっています。これまでArial Unicode MSが使われていたのは、XPでは多くの記号類などをカバーできるフォントが他になかったからじゃないでしょうか。Segoe UI Symbolなら7以降に標準でインストールされています。

ただし、 7のSegoe UI Symbolはバージョンが5.01のままずっと更新されていません。このため8.1では表示されても7では豆腐になってしまうケースもあります。
下図の文字は、いずれも標準フォントではSegoe UI Symbolにしかありません。


XPの時代が終わって7対応、というよりは間もなくリリースされる10対応ということなんでしょうか。

なお、拡張領域は43より前からSegoe UI Symbolが表示されていたようです。以前は豆腐になったと記憶しているので、どこかのバージョンで対応してたんでしょう。


いずれにしても8.1のIEとは表示サイズが異なりますが。
こうして見ると、これはこれで環境による表示のバラつきがけっこうありそうな仕様です。それでもOfficeの有無によって違うよりはずっといいと思いました。

2015年7月14日火曜日

CCC:GPUScaling010

先日Windows 10にも対応したCCCの15.7が公開されましたが、その前のOmegaの時の話です。
なぜかインストールがエラーになり、 いったん削除して再インストールしたり前のバージョンを入れ直したり・・・なんてことを繰り返しているうちに、GPUアップスケーリングの「アスペクト比の保持」が無効の状態になってしまいました。

ところがCCCを開いてみるとGPUアップスケーリングは有効で、「アスペクト比の保持」が選択されていました。


ここでおかしなことがありました。
一度GPUアップスケーリングをオフにして、もう一回オンにしたら直るかな?と思ったのですが、オフにして適用をクリックすると勝手にオンに戻ってしまいます。

「アスペクト比の保持」の値をレジストリで設定する方法は知っていました。

Intel Display Driver Scaling Scripting - TechNet

しかしGPUアップスケーリングのオンオフ自体がおかしいので、そういう問題ではなさそうでした。念のため値を確認しても、「4」(アスペクト比の保持)になっていました。

レジストリで他に設定するところがあるんだろうと調べていたら、「GPUScaling010」というそれらしき名前を発見しました。


これをググってみたら、自分と同じ現象に遭遇した話を見つけました。

AMD Catalyst 14.4 was just released :: DARK SOULS™ II 総合掲示板

リンク先に書かれているように、この値を「01 00 00 00」から「00 00 00 00」に変更してCCCを開いてみると、GPUアップスケーリングはオフになっていました。そしてオンにして適用すると、「アスペクト比の保持」は再び有効な状態に戻りました。
なんかCCCのUI上の表示とレジストリへの値の反映がうまくいかなくなっていたようです。

なお15.7は問題なくインストールできました。

2015年4月23日木曜日

Windows 10TP:Spartan上のフォント変化(3)

さらに前の話の続きです。

Build 10061が配信されていたのでアップデートしようと思い、とりあえず起動して先日入れた韓国語と繁体字中国語の言語パックを削除して再起動しました。フォントを確認すると、Gulimはこれでは消えませんでした。
謎なのは、先日はインストールされなかったMingLiUがこの時点でインストールされていました。

先のコメントの表示をあらためて確認してみました。


今度は10でもMingLiUも表示されるようになりました。
ただし比較でわかるように、8.1とは異なり途中のひらがなでフォント変化が解除されています。
原因はわかりません。

なお10061をインストールしたところ、またGulimもMingLiUも入っていない状態に戻りました。
上のコメント表示は前の前の話と同じでした。

2015年4月15日水曜日

Windows 10TP:Spartan上のフォント変化(2)

前の話の続きです。
GulimやMingLiU(PMingLiU)が表示されないのは、そもそもインストールされていないのだと教えていただきました。8.1まではデフォルトで入っていたフォントなんですが。

そこで言語パックを追加してみました。


韓国語の言語パックをインストール後、再起動するとGulimがインストールされていました。
繁体字中国語はマカオ・香港・台湾の三種類があるようですが、今のところ台湾版しか提供されていませんでした。これをインストールしてもMingLiUはインストールされませんでした(香港版なら入る?) 。

とりあえずGulimインストール後の表示です。


Gulim化も8.1と同じ表示になりました。

それにしても、なぜGulimやMingLiUがデフォルトでは入ってないのでしょうか。
ちなみに下図は8の最初のプレビュー版当時に検証でキャプチャしたものです。英語版でしたが、どちらのフォントも入っていました。


タブレットなんかは容量限られてますし、よけいなフォントは入れない仕様に変わるんですかね。