• .Net Framework 4.6 の高DPI対応でPre MonitorとPre Monitor V2を同時に設定する

    2018-06-03 19:04

    Windows 10バージョン1507、1511でも動くように.Net Framework 4.6でビルドしたい。けど、.Net Framework 4.7がインストールされていればPre Moniter V2対応にしたい。

    実際に試してみました。
    Pre Moniter V2は4.7からの機能と思いきや、試してみると4.7がインストールされていれば4.6でビルドしてもたぶん問題がないことを確認しました。
    ※重要なのは.netのバージョンというよりはWindows 10のバージョンかな?.Net Framework 4.7をインストールしたWindows 8.1でPre MoniterV2に対応できるとは聞かないですし試そうにも今はWindows 8.1のPCは手元にありません。
    NCAがスケーリングされているのを確認したので、その点に関しては間違いないです。
    マルチモニター環境ではないので、こちらではいろいろ確かめていないことが多いので注意です。

    4.7では高DPI対応についてマニフェストファイルではなくApp.configに記述することを推奨していますが、4.6でビルドしたアプリをPre Moniter V2に対応させるには今まで通りマニフェストファイルに記述する必要があるみたいです。

    <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
    <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
    </windowsSettings>
    </application>

    ただし、4.6.1がインストールされているWindows 10 バージョン1507では非Pre Moniter対応になってしまうことも確認しました。

    4.6の環境でもPre Moniterに対応させるには旧来のdpiAwareも一緒に記述することで、4.6の環境ではPre Moniterに、4.7の環境ではPre Moniter V2に対応したアプリができることを確認しました。

    <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
    <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/PM</dpiAware>
    <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
    </windowsSettings>
    </application>


  • 広告
  • 【電卓】Windows 10 の calc.exe の仕組み

    2018-05-31 21:11

    Windows 10の電卓アプリは従来のネイティブアプリのものからUWPアプリのものに置き換わりました。

    UWPアプリの電卓は、通常では削除することができませんが、とあるPowerShellコマンドレットを使用することで削除することができます。

    実は、Windows 10にもUWPアプリ本体の実行ファイルとは別にSystem32の中にはcalc.exeが存在しています。
    従来ではこれが電卓の本体でしたが、Windows 10のcalc.exeそのものには電卓は実装されておらず、これを実行するとUWPアプリの電卓が起動するようになっています。
    では、電卓を削除した状態でcalc.exeを実行するとどうなるのでしょうか。


    「この calculator を開くには新しいアプリが必要です」と表示されます。

    ところで、Windows 10にはLTSB版というものがあり、LTSB版はすべてのUWPアプリが削除された状態になっています。
    つまりUWP版の電卓がありません。その代わりにネイティブ版の電卓が備わっています。
    実行ファイルの名前はwin32calc.exeとなっており、calc.exeを実行するとwin32calc.exeが起動するようになっています。

    調べてみるとレジストリの値によって起動するものを変えることができるみたいです。
    これを利用すれば任意の電卓アプリを、calc.exeやキーボードの電卓ボタンで起動することができます。

    以下はLTSB版のレジストリです。

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\calculator]
    @="URL:calculator"
    "URL Protocol"=""

    [HKEY_CLASSES_ROOT\calculator\DefaultIcon]
    @="C:\\Windows\\System32\\win32calc.exe,0"

    [HKEY_CLASSES_ROOT\calculator\shell]

    [HKEY_CLASSES_ROOT\calculator\shell\open]

    [HKEY_CLASSES_ROOT\calculator\shell\open\command]
    @="\"C:\\Windows\\System32\\win32calc.exe\""


  • Windows 10 で夜間モードをオンまたはオフにしても色が変わらないときの対処方法

    2018-05-31 19:23

    Windows 10 バージョン1703 Creators Updateから夜間モードが実装されました。
    ところが、この夜間モードをオンにしてみても色が変わらないという現象が時々発生するようになってしまいました。

    調べてみると、夜間モードのオンオフスイッチがグレーアウトして切り替えられないという問題があるということを見つけて、それはグラフィックドライバー周りの不調によって発生するということだそうです。

    で、スイッチがグレーアウトしていないのに有効にならない場合もグラフィックドライバー周りの不調なのだろうかと思い「Win+Ctrl+Shift+B」を試してみた結果、正しく夜間モードになるようになりました。

    スイッチがグレーアウトしていないけど有効にならない問題もグラフィックドライバー周りの不調だということで、そういえば先日グラフィックドライバーを更新したなぁ…ということを思い出しました。Ryzen 5 2400G用のドライバーはまだ安定していない模様(´・ω・`)