2026年5月8日金曜日

Chrome デベロッパーツールでのウィンドウサイズ表示

開発者ツールで

レスポンシブデザインや開発では、chrome そのもののウィンドウサイズを変更させて確認することが多いです。
その場合、デベロッパーツール(F12)を開いたときに右上に表示されるウィンドウサイズ、とっても重宝します!

トリガーがわからない!

ところが、このウィンドウサイズ、表示されるときと、されないときがあるんですよね。
しかも、表示してほしい時に限って表示されないんで、モヤッとしてしまいます笑

発見しました

ようやく、解決方法を見つけました!
長かった(´Д⊂グスン

デバイスのツールバーをね、2回押すといいよ!

デバイスツールバーを押すと、一度は小さいスマホサイズになるけど、もう一度押すと元に戻ります。

この状態で chrome のウィンドウ幅を変えると・・・

ほらね!

まとめ

と、いうことで、AIに聞いても教えてくれなかった裏技を発見したのでしたw
めでたしめでたし。

2026年5月7日木曜日

以前の Outlook を使いたい!

新しい Outlook

いや、いらないよね?
たまに起動してしまうとパスワード求められて来るのもびっくりするし。
マイクロソフトアカウントのパスワードかと思いきや、メールアカウントのパスワードだし。
せっかく作ったアドインが使えないし。
アドインを買ってくれてるユーザーも使えないし・・・

おかげで、弊社の Outlook アドインの売れ行きが冴えません。

以前の Outlook を使うには

従来の Outlook を使うには、新しい Outlook の「ヘルプ」メニューにある、「従来の Outlook に移動」をクリックします。


最近は、このメニューさえ出ないそうですよ!
その場合、Outlook をアップデートすると「従来の Outlook に移動」が出てくるそうです!

アイコンを変更しましょう

タスクバーとかメニューとかデスクトップのアイコンを使って Outlook を起動してると思いますが。
毎回、「従来の Outlook に移動」を選ぶのはうんざりしますよね
そこで、Outlook (classic) のアイコンと入れ替えましょう!

そのためには、実行ファイルの場所が必要になりますね。
ここです!
C:\Program Files\Microsoft Office\root\Office16

ここにある、OUTLOOK.EXE を右クリックして「タスクバーにピン留めする」を選ぶと、タスクバーに表示されます!

あとは、このショートカットアイコンをデスクトップなどの好きな場所に配置すればいいですね。

新しい Outlook のアイコンが不要な場合は、右クリックで消去しちゃいましょう!

既定のアプリに変更する

WEBサイトの mailto: のリンクなどでメールを送信したいとき、これまた新しい Outlook が表示されちゃいますね。
しつこいなーって思います(笑)
既定のアプリを変更しましょう。
Windowsの「設定」「アプリ」「既定のアプリ」です。


ここで、「ファイルの種類またはリンクの種類の規定値を設定する」下の検索ボックスに
MAILTO
と入力すると、現在設定されているメールソフトが表示されます。

メールソフトの部分をクリックすると、候補となるアプリの一覧が表示されますので、Outlook(クラシック)を選んで「規定値を変更する」ボタンを押します。

まとめ

という流れで、Outlook(classic)が使えるようになりました。
このまま従来の Outlook をこれからもずっと使い続けられるといいのですが・・・w

2025年7月31日木曜日

iOS で ajax が動かない

$.ajaxで undefined なエラー?

iOS 用のアプリ(WEBアプリ)で、ログイン後にデバイストークンを登録しようとして、以下のような構成にしてました
login.js - IDやパスワードを調べてログインするまでをクラス化したもの
device_toiken.js - デバイストークンをDBに登録するためのクラス
ここで、デバイストークンの登録が必要なのはデバイスがスマホアプリの時だけです。
サービスはスマホに PUSH 通知するけど、WEB PUSH は使わないんで。
なので、login.js と device_token.js は、独立してて相互通信をする必要はないのよね。

カスタムイベントを用意する

そこで、login.js はログインが成功したら、独自に作ったカスタムイベントを発行するんです。
こんな感じ。

    // ログイン完了イベントを発行する
    window.dispatchEvent(new CustomEvent(LOGIN_EVENT_NAME, {
        detail: {
            login_id: login_id,
            device_type: device_type
        }
    }));

受け取り側の device_token.js では、イベントを待機したらデバイストークンを取得してサーバに登録します。
こんな感じです。

    // ログイン完了イベントでデバイストークンを取得して登録。
    window.addEventListener(LOGIN_EVENT_NAME, async (event) => {
        const login_id = event.detail.login_id;
        const device_type = event.detail.device_type;
        await registerDevice(login_id, device_type);
    });
データベースへの登録処理は $.ajax()なり $.post()なりでサーバのAPIを呼び出すだけです。
で、Android アプリは正しく動作するのに、iOS アプリだとエラーの不明な例外で落ちます。
login.is では、イベント発効前に $.ajax で ID が正しいかとかパスワードが正しいかとかやってるのに。
iOS だとデバイストークンの保存APIだけが落ちるんですよね・・・
丸一日追いかけましたよ・・・

ようやく

という書き出しから想像つくと思うけど。
要するにね、カスタムイベントハンドラ内での $.ajax だから落ちるんだと分かった。

login.jsでdevice_token.jsのクラスを依存させて次のように書き換えました。

    if(this.IsMobile) {
        const tokener = new DeviceTokenClass();
        var device_token = await tokener.getDeviceToken();
        if(device_token != null) {
            var result = await tokener.registDeviceToken(login_id, device_type, device_token);
        }
    }

まとめ

せっかく2つのクラスを分離してたけど、それができなくて残念でしたが。
Androidは動くけど、iOS では動かない!
なぜじゃ!?
という事態になったら、こういった部分が引っかかってるかもです。
納期ギリギリまにあったので、よし!w

めでたしめでたし。

2025年7月30日水曜日

Android Studio で Emulator が動かない

エミュレータが動作しない

開発PCが壊れたので新しく Windows11 Pro の環境でプロジェクト再構築。
Android Studio を使ってアプリ開発しようとしたら、エミュレータが動かない。
Pixel 9 terminated.とかいうエラーダイアログが出て動作しません。

Android Studio は新しいバージョンになってるんだが・・・

Windows のユーザー名

新しいPCはマイクロソフトアカウントでユーザー名が日本語なんですよ。
どうやら、こいつが原因のようです。

ところが。Windows11のユーザー名は変更できない!
(できるのかもしれないけど、無理だった)

Android のディレクトリを変更する

・環境変数 ANDROID_SDK_HOME を設定
 コントロールパネル「システム」「システムの詳細設定」「環境変数」を開いて新しい環境変数を作成します。
D:\Programs\Android\.android を作ってそこを指定してみました。
・ユーザープロファイルフォルダの .android を丸ごとコピーします。
ユーザプロファイルは C:\ユーザー\ユーザー名 のフォルダね。
・念のため、ユーザープロファイルの .android フォルダの名前を .android_bak にしました。
・Android Studio を起動。
・エミュレータ起動。

まとめ


無事、エミュレータが動作しました。
Android Studioの関係者が見てたら、修正してほしいですねw

めでたしめでたし。

2025年4月11日金曜日

WindowsUpdateでフォントがおかしくなった!

Windows10 Update

使ってるPCはWindows11にアップデートできない機種なので Windows 10 を使い続けてます。
昨夜、「更新してシャットダウン」を選んで朝まで放置してたら、例によってPCは起動状態でした。
まあ、いつものことだから、イラつきもしませんが(笑)

エクスプローラの表示がおかしい

さて、今日も作業を・・・とみるとエクスプローラの表示がおかしい。
おいおい、なんだよこりゃ?
システムフォントが変わったのかな?

フォントを変更する

たしか、Windows はフォントの大きさを変えられるけどフォント自体を変更することはできなかった気がする。
そこで、これ!
「Meiryo UIも大っきらい!!」
ダウンロードして展開したら実行ファイルをクリック。
フォントを指定して、「一括設定して終了」これでOK
文字化けさえしなければなんでもいいので、「Meiryo UI」を指定しました。(笑)

まとめ

と、いうことで、昨日までとちょっと違うけど、文字化けを対策できました。
有用なソフトウェアを公開してくれている Tatsu さんに感謝です!
ありがとうございます!

2024年12月29日日曜日

VisualStudio Installer プロジェクトでコードサイン証明書を適用する

pfx形式が使えなくなった

製品のインストーラ(exe形式ファイル)を作成するために、これまで頑なに Install Shield 2015 の無料版を使用していましたが。
コードサイン証明書が変更になってしまい、pfx形式だとうまくビルドできなくなってしまいました。
そこで、VisualStudio 2022 の Installer プロジェクトを新たに作成することにしました。

ビルドしたインストーラファイル(msi形式ファイル)にコードサイン証明書を適用する必要があるのですが、その手順を自動化したので紹介します。

USBドングルでの証明書

これまでは、コードサイン証明書は .csr 形式のファイルで提供されていて、そいつを元に .pfx 形式ファイルを作成していました。
インストーラプロジェクトでは、sign タブの部分で pfx ファイルとパスワードを設定さえすればビルドできてたんですよね・・・
Visual Studio 2015の Install Shield では、ストアに登録した新しいコードサイン証明書を指定しても、エラーになってビルドできませんでした。

Installer Project を作成する

VisualStudio 2022 の Installer プロジェクトを作ります。
プロジェクトのプロパティで必要事項を設定するのですが、設定項目が Install Shield とほぼ同じのため、さほど混乱はしませんでした。
重要場部分としては、次のような点でしょうか。

  1. ProductCode はバージョン番号を変えたら必ず新しいものに変更する。
  2. UpgradeCode は変更してはならない。(そうしないとインストール時に以前のバージョンをアンインストールしてくれなくなります)
  3. ProductName 部分はインストール先のフォルダ名に利用される点に注意
  4. Version は##.##.####形式でなければならない
これまでバージョン番号には ##.##.##.## の形式だったのが使えなくなりました。
後述のアンインストールしてくれない問題は、ここが原因なのかもしれません。

signtool.exe を使ってコードサイン証明書を適用

無事インストーラが出来上がったら、コードサイン証明書を適用します。
signtool.exe の GUI で使用するのですが、入力項目が多く、とっても面倒でした。
ということで、インストーラプロジェクトの PostBuildEvent に次の行を追加して自動化しました。

signtool sign /a /n "証明書のトークン名" /t "タイムスタンプサーバのURL" /d "製品記述" /du "製品のURL" $(BuiltOuputPath)

途中でトークンパスワードを入力する手間が発生するけど。GUIでごにょごにょ入力するよりは、はるかにマシになりました。

以前のバージョンをアンインストールしてくれません。

UpgradeCode は正しく設定しているにもかかわらず、インストーラが以前のバージョンを事前にアンインストールしてくれなくなりました。
いろいろ試したり調べたりしたけど、どうしてもだめでした・・・。
バージョンの表現形式が変わってしまったからなのかもしれません・・・
あるいは、exe形式から msi形式に変わったからなのか?

もし情報をお持ちの方いらっしゃいましたら、教えてくださいませ。

まとめ

ついに Install Shield を脱却しましたw
めでたしめでたし。

2024年11月17日日曜日

スタイルシートに指定している色で表示されない

Color picker で異なる色が表示される

WEBページの設計では、色にこだわるケースが多いですね。
顧客から指定された色でデザインをしていたんですが、おかしな現象がでました。
スタイルシートに指定している色で、表示されないのです。

コードでは次のように指定しています。

--color-main-bg: rgb(3, 180, 198);
.top-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 100%;
    padding: 1rem;
    margin: 0 auto;
    background-color: var(--color-main-bg);
}

Chrome color picker で別の色が表示される

Chrome で表示させて、開発者ツールを開くと、図のようにちゃんとコーディングした内容が反映されています。

ところが、Chromeの拡張機能の Color Picker で表示されている部分を調べると

おいおい、どーして色が違うんだよ・・・
おれさまのコードのどこに問題があるって言うんだよ~・・・
使ってる bootstrap とか normalize とか milligram なんかが悪さしてるのかな~・・・
と、必死にデバッグするも、問題点が見つからない・・・・

マルチディスプレイ

ディスプレイを2つ並べて開発してるんですが、表示してるページをもう一方のディスプレイにスライドすると・・・
あら不思議。ちゃんと指定された色で表示されちゃいます。

いったい、どういうことヨ?
どうやら、ディスプレイがおかしいのだということで、調べてみたよ。

画面の色調整

コントロールパネルに「色の管理」というのがありまして。
「詳細設定」-「ディスプレイの調整」というボタンがありました。
ぽちっ!

なんだかわからないけど、とりあえず、「次へ」ボタンで進めていきます

まとめ

するってえと、見た目も Color Picker でもちゃんと表示されるようになりましたよ!

いやあ、てっきり自分のプログラムが悪いんだろうと、とっても長い時間悩みましたよ
ほんと、こーゆーの勘弁してほしいですわ。
ま、なおってくれたので良しとしましょう。
めでたしめでたし。

c.f.
https://support.hp.com/jp-ja/document/c04249810