ぷろじぇくと、みすじら。

FlexScan EV2736WとSurfaceシリーズをDisplayPortで接続するとディスプレイがフリーズする場合がある

Created at: | Tag: Windows Surface

tl;dr

"DP HotPlug"を有効にする。

症状

Surface BookやSurface Pro 4をEIZO FlexScan EV2736WにDisplayPortで接続している環境でSurfaceの電源が切れた際、ディスプレイもスタンバイ(パワーセーブ)になりますがその後ディスプレイが応答しなくなることがあります。 Surface側はスタンバイから復帰するとディスプレイが切断された状態で問題なく動き続けますが、ディスプレイは主電源(後ろのスイッチ)を入れなおさないと復帰せず操作できない状態になります。

この問題はSurface Dock、Surfaceに直接接続時のどちらでも発生し、結構な頻度で発生するのでなかなかストレスフルです。

対処方法

Surface側がスタンバイや電源が切れた際にDisplayPortの接続が切れ、ディスプレイ側がスタンバイになったときに問題が発生しているような雰囲気があります。

ところでDisplayPortでの接続時にディスプレイ側の電源を切るとコンピューターから見て切断された扱いになる場合があることが知られていますが、 FlexScanには切断された扱いにならないようにする"DP HotPlug"という機能があります。これを有効にするとディスプレイの電源を切ってもマルチモニターが維持された状態になり、アイコンやウィンドウが残念なことにならないという便利機能です。

ディスプレイ側の電源なのでで関係なさそうなありそうなこの機能を有効にすると問題が収まりました(二日ぐらいたってもフリーズしてない)。

EV2736Wで"DP HotPlug"を有効にする方法「上矢印を押しながら電源を入れる」です。詳しくはマニュアルに書いてありますが、DisplayPort入力に切り替えたとき入力表示が灰色になっていれば有効になっています。

PIX-MT100を接続するとWindowsの反応が悪くなる

Created at: | Tag: Windows

tl;dr

ドライバーをMicrosoftの"Remote NDIS Compatible Device"に強制的に変更する。

症状

PIX-MT100というUSBドングル型のLTE通信デバイスがあり、コンピューターに接続するとLTE回線を利用して通信できます。 そんな便利デバイスですがWindowsが動作しているコンピューターに接続した場合にOS全体の反応が異常に悪くなる(遅くなる/重くなる)ことがあります。

例えば、接続中はタスクマネージャーが著しく遅くなる、アプリケーションが応答しなくなるといった状態が発生します。詳しい発生環境は調べていませんがいくつかのWindows 10を実行しているコンピューターで発生することを確認しています。

原因と回避策

原因はどうやら接続時にインストールされるドライバーによるもののようなので、別なドライバにー変更することで正常に動作します。

デバイスマネージャーを開くと"Remote NDIS based Internet Sharing"というデバイスがネットワークアダプターの下に見つかります。

このデバイスを開いて、ドライバーの更新を選択します。

ドライバーの一覧から互換性のあるもの以外を表示するようにして全てのドライバーを表示します。この時点ではD-Linkのドライバが選択されているかと思います。

次に製造元はMicrosoftを選択し、"Remote NDIS Compatible Device"を選択して進めます。"Remote NDIS based Internet Sharing"ではないことに注意してください。

その際、互換性を確認できていない云々が表示されますがそのままインストールします。

インストールが完了すると、"Remote NDIS based Internet Sharing"の詳細タブの中で"Remote NDIS Compatible Device"になっていることを確認できます。

互換性云々のメッセージが出るにもかかわらず、これで問題なく動作するようになります。

おまけ

ところでこれと同じ症状はIntel EdisonをUSB接続したときにも発生します。特に試してはいませんがEdisonもRNDISデバイスとして見えるようになっていたので、多分同様の操作で治るのではないかという気がしています。

ロックスクリーンを起動する

Created at: | Tag: Windows

何を言っているのかという感じですが、ロックスクリーンを単体で起動する方法についてです。

ある日、Windowsのロックを解除したらなぜかロックスクリーンがウィンドウとして残るという現象が発生してちょっと驚きました。

もちろんウィンドウなので自由にリサイズでき、ロックスクリーンそのものなので画像を変更したり、情報などの表示物も変わったりします。複数の解像度の時の見た目を確認できて便利です。

WindowsのロックスクリーンはUWPのアプリケーションとして実装されているということは知っていたのですが、 確かにそれであればウィンドウみたいになってもおかしくはないですね。

ということはもしかして単体で起動できたりするかも?と思って調べたところうまく起動できました。

単純にロックスクリーンのUWPアプリケーションを起動するだけなのですが、exeを叩いて起動するのではなくAppIDをもとにアクティベーションするというややこしい手順が必要になります。 そこで手っ取り早く起動するのにWindows KitのUWPアプリケーションを起動できるコマンドを使います。

Windows Kit (App Certification Kit)をインストールしたら、コマンドプロンプトで次のコマンドを実行することでロックスクリーンを起動できます。

cd \Program Files (x86)\Windows Kits\10\App Certification Kit
microsoft.windows.softwarelogo.appxlauncher.exe Microsoft.LockApp_cw5n1h2txyewy!WindowsDefaultLockScreen

拡張をChromeからMicrosoft Edgeに移植する

Created at: | Tag: Edge Translation

これはExtensions: Porting Chrome extensions - Microsoft Edge Developmentの何となく翻訳です

拡張をChromeからMicrosoft Edgeに移植するのはMicrosoft Edge Extension Toolkitの助けを借りれば簡単に行えます。この開発者ツールはAPIをブリッジするとともに manifest.json ファイルにあるエラーを明らかにし、パッケージ化されていないChromeの拡張をパッケージ化されていないMicrosoft Edgeの拡張へと変換します。

API ブリッジ

Chrome APIからMicrosoft EdgeのAPIへシームレスな移植を可能にするため、2つのスクリプトが拡張のフォルダーに追加されます。それらのスクリプトはAPIをブリッジ(必要に応じてpolyfil)するため、バックグラウンドスクリプトまたはコンテンツスクリプトに含まれるChrome固有のコードの変更について心配する必要はないということを意味します。

変換後、拡張のマニフェストファイルに "-ms-preload" キーとともに以下の項目が含まれていることに気がつくでしょう:

"-ms-preload": {
  "backgroundScript": "backgroundScriptsAPIBridge.js",
  "contentScript": "contentScriptsAPIBridge.js"
}

Microsoft Edge Extension Toolkitを利用する

以下の手順はChromeの拡張をWindows 10 Anniversary Update エディションのMicrosoft Edgeでを変換し動かす方法についてです:

  1. Microsoft Edge Extension Toolkitをインストールします
  2. Chromeの拡張のフォルダーを安全のためにコピーします。変換処理はコードを上書きします
  3. Microsoft Edge Extension Toolkit を実行し、拡張のコピーを読み込みます load extension button
  4. ツールのテキストエディターに報告されるすべてのエラーを修正します。修正した後、"Re-validate" を選択してエラーをチェックします
    extension-toolkit finding errors
  5. "Save files" を選択します

これでToolkitを終了して、拡張をMicrosoft Edgeで読み込めます!

既知のプラットフォームの問題をEdgeHTML issue trackerで探すことができます。もし新しい問題を見つけたと思ったらissueをオープンしてください!

Anniversary Update後の環境でドメインに参加しているとWindows Helloを設定できない

Created at: | Tag: Windows Hello

Windows 10 のVersion 1607、いわゆるAnniversary Updateが適用され、かつコンピューターがActive Directory ドメインに参加している場合にWindows Helloを設定できないことがあります。

正確にはWindows Helloを設定できないのではなく、PINコードの設定ができない状態になります。

設定できない状態では"Some settings are managed by your organization(一部の設定は組織によって管理されています)"と表示されPINコードの設定ボタンがグレーアウトします。

これはAnniversary Updateでドメイン参加時のPINコードのポリシーが変わったために発生します。

Anniversary Update以前に設定している場合にはPINコードを削除しない限り利用できます。

つまりOSをクリーンインストールした状態でAnniversary Updateの場合にはドメインに参加するとPINコードの設定ができなくなる場合があるということになります。

解決方法

この解決方法は二種類あります。

  1. Windows Hello for Business を展開する
    • 試してはいないですが多分Windows Hello for Businessはそれ用のPINのインフラがあり、それを使うようになるようです(通常のPINはConvinience PINと呼ばれている)
  2. グループポリシーでConvinience PINコードの設定を許可するポリシーを設定する
    • Windows Server 2012 R2では"Turn on PIN sign-in"を"Enabled"に
    • Windows 10/2016では "Turn on convenience PIN sign-in"を"Enabled"に