今回は「Windows7」特有の機能であります、「マルチタッチ機能」についての個人的開発トラブルを報告します。
パソコンでの開発は余分な機能がついているために返ってトラブルを引き起こしてしまうということがありますね。
経緯
最近「デジタルサイネージ」という言葉が流行っています。その類の開発を企業から相談されることが多いです。
専門で開発している会社は沢山ありますが、価格が若干高めです。
そこで、コストを落した開発を試験的に行ってみようと思いました。
今回、 EQUIUM S6800の極小パソコンを冷却機能付きオリジナルラックに入れ、タッチパネルディスプレイを接続し、ネットカフェのインフォメーション端末(店頭や店内にある案内端末)制作を実験します。
windows7のマルチタッチ機能を最大限に使い、開発することにしました。
windows7を利用する理由は付属のタッチディスプレイが安価に手に入るからです。
特に光学式(耐久性あり)のディスプレイを使いたいという理由もあります。
そこでjavascriptやhtmlなどを利用し、低コストでグラフィカルなインフォメーション端末を作成します。
ハードウェア
本体:EQUIUM S6800 PES682GENU711
ディスプレイ:iiyama T2250MTS-B1(光学式タッチ)21.5インチ
ストリーミング用:windows media player V11
キオスクモード
“C:\Program Files\Internet Explorer\iexplore.exe” -k (開きたい画面) を実行することで、ブラウザーが全画面表示になり、タスクバーなどが絶対に出せないモードになります。(終了:Ctrl+w)
落とし穴
ズーム従来のタッチパネルは座標軸は1点しか認識できなかった為、マウス操作とほぼ同じ動きをしてくれました。
従って、ブラウザーさえ固定しておけば、インフォメーション画面らしいものになっていました。
ところが、windows7になってマルチタッチズーム(親指、人差し指でズームできる)がある為、固定していたブラウザーはそのズームで崩れてしまいます。(写真1)
つまり、画面上でOSは2点を認識できるようなテクノロジーが入った為、それが邪魔してブラウザー画面を固定しても、ズームされて崩れてしまうという問題が発生しました。
これは、windows7のマルチタッチ機能とブラウザーのズーム機能(Ctrl+ホイール)がある為に発生します
マルチタッチズーム
ブラウザーのズーム機能(XPではCtrl+マウスのホイール)がある為、マルチズームで画面に触ると、キオスクモードの画面が崩れてしまう。
折角、低コストで開発できたインフォメーション端末ですが、これでは利便性が悪すぎます。お客様も1点で触ってくれたら良いですが、不意に2本の指が画面についたら、たちまちズームされて画面が崩れてしまいます。こんなもろいシステムはありませんね(笑)
と言う訳で、回避策は下記です。
回避策
①マルチタッチ機能を無効にする
②マルチタッチをシングルタッチに変更する
など、windows7のマルチタッチ機能を無効にできないか?をマイクロソフトや東芝のサポートセンターに聞きましたが、出来ないということでした。
そこで考えたのが、ブラウザーだけズームできないようにする。。。。ということです。・・・・ありました。
(ie8のズーム機能を無効にする)
ファイル名を指定して実行する→regedit
レジストリエディタが起動されます。
HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft
を探し、キーを右クリックし、新規キーを作成し、新しいキー の名前に Internet Explorer と入力します。
Internet Explorerキーを右クリックし、新規キーを作成し、新しいキー の名前に Zoom と入力します。
Zoomキーを右クリックし、新規のDWORD値を作成し、新しい値に ZoomDisabled と入力します。
ZoomDisabledの(修正)値のデータを1と入力し、OKをクリックします。
(Firefoxのズーム機能を無効にする)
①Firefoxのアドレスバーにabout:configと入力します。
②toolkit.zoomManager.zoomValues を探し、ズームさせないので、「1」(100%)とします。
③さらにズームの最大値と最小値を設定するところがありますので、
zoom.maxPercent=100
zoom.minPercent=100
つまり、常に100%になりなさいということを設定しているだけです。
これをすることでブラウザーはキオスクモードのまま、がっちりと固い画面のままがんばってくれています。