Windows 7 の 64 ビット環境で VNC クライアント RealVNC を試してみる
CLIENT
Windows 7 の 64 bit 環境で VNC クライアントを使用する
Mac OS X 10.6 へのリモート接続を可能にする で記したように "画面共有" の機能を用いてリモートデスクトップ接続が可能となった Mac OS X に接続するために、Windows 7 に VNC クライアントソフトをインストールしてみることにしました。
VNC にはさまざまな種類が存在するようですけど、今回はその中でも伝統的とされる "RealVNC" を利用してみることにしました。
平成 21 年 12 月 8 日現在、RealVNC は 4.1.2 が最新版のようですけど、Windows 7 の 64 ビット環境においてはサーバーへ接続するための機能のみが正しく動作するそうです。RealVNC には実際に自分の PC に接続して操作させるサーバーの機能も提供されているようですけど、そちらは 64 ビット環境では動作しないらしいので注意が必要です。
また、Mac OS X 10.6 の画面共有へ接続してみた場合、自分の環境かではイコール記号 (=) とシングルクォーテーション ( ' ) を入力できませんでした。入力しようとすると、それぞれプラス記号 (+) とダブルクォーテーション ( " ) になってしまいます。英語キーボード配列として誤認されているということもないようです。
これについてはいろいろと対応方法を模索してみましたので、この記事の最後の方でまた触れてみたいと思います。
Windows 7 Ultimate 64 bit へ RealVNC 4.1.2 をインストールする
平成 21 年 12 月 8 日現在、RealVNC は http://www.vector.co.jp/soft/win95/net/se324464.html からダウンロードできるようになっていました。
ここから RealVNC 日本語版 4.1.2 をダウンロードしたら、その vncjp-4_1_2-x86_win32.lzh ファイルを展開します。そして、展開された "vncjp-4_1_2-x86_win32" を実行することで、Real VNC のセットアッププログラムが起動します。
後はインストール手順の通りに進めて行けばインストールは完了です。
なお、今回はサーバー機能は必要ないので、途中の "コンポーネントの選択" のところで "VNC サーバ" の選択肢からチェックを外して、"VNC ビューワ" の機能だけをインストールすることにしておくことにしました。
それにも関らず、インストールが完了した後で、スタートメニューに VNC サーバー関連のメニューも登録されているようでした。ただ、実際のプログラムは存在しないらしく、クリックしてみてもファイルが見つからないとのことでした。なんとなく紛らわしいので、邪魔な場合はそれらは手動で削除しておいても良さそうです。
RealVNC 4.1.2 ビューワを設定する
RealVNC 4.1.2 のインストールが完了したら、接続設定を行います。
今回は Mac OS X 10.6 Snow Leopard の画面共有機能で提供されている VNC サーバーへの接続を行ってみます。
スタートメニューから "RealVNC" → "VNC ビューワ 4" とたどり、その中の "VNC ビューワの起動" を選択すると、接続詳細画面が表示されます。
ここで、"サーバー" として、接続先のサーバーを指定して [OK] ボタンを押すことで、VNC サーバーへ接続することが可能です。上手く接続できれば、パスワードの入力画面となるので、VNC サーバーに設定してあるパスワードを入力することで、デスクトップ画面が表示されてきます。
ただし、Mac OS X 10.6 Snow Leopard 等に実装されている Mac OS X の画面共有機能の場合、色数を 16 ビットカラーにして接続しないと "write: 接続をアボートしました (10053)" というエラーメッセージが表示されて、接続できないので注意が必要です。
詳細な設定を調整するには、接続詳細画面の [オプション] ボタンをクリックします。
ここで色数や、キーボードやマウス等の入力デバイスの動作の仕方などを調整することができるようになっています。特に Mac OS X の画面共有を利用している場合には、"カラー・エンコーディング" タブの "カラーレベル" の設定を "フル(F)(有効な色すべて)" にしておかないと、接続が強制的に終了させられてしまうので注意が必要です。
この設定を毎回するのが面倒な場合は "ロード・セーブ" タブ内の "ディフォルト設定" のところから、設定を保存しておくと良いでしょう。
RealVNC 4.1.2 を Windows 7 で使用する場合
あくまでも、自分の環境で試してみている感じでは、Windows 7 の 64 ビット環境に RealVNC 4.1.2 をインストールして、それを用いて Mac OS X 10.6 Snow Leopard の画面共有へ接続している場合には、接続してしばらく Windows で他の作業をしていると、数十分もしないうちにいつの間に通信が固まってしまっていて、マウス操作も画面描画も受け付けなくなってしまうようでした。
そうなった際はいったん切断して再接続を行うなどして対応していたのですけど、あまりにも停止する可能性が高く困っていたのですけど、ふとその原因に気がつきました。
どうやら Windows 上でクリップボードに何かをコピーしたときに、RealVNC が固まってしまう様子です。
そこで、RealVNC のオプション設定で "入力" タブ内の "サーバーへクリップボードの変更を送る" のチェックを外したところ、通信が固まってしまう症状は発生しなくなりました。
もちろん、VNC サーバーとクライアント間でのクリップボードの共有はできなくなってしまいますが、止まって再接続操作を繰り返すことを考えたらずっと良いように思います。この不具合を見つけてから試しに使用してみた TightVNC や UltraVNC では、平成 21 年 12 月 8 日現在、描画が遅くて実用的とは言えないですし、クリップボードが利用できないだけならば、例えそれを差し引いたとしても便利さはずいぶん広がります。
他、おまけとなりますけれど、RealVNC のオプション設定で "特別なキーをサーバへ直接送る" からチェックを外せば、[Print Screen] 等のキーがクライアント側で処理されるようになります。Windows をクライアントにして、Mac OS X を動作テスト等で利用している場合には、このようにしておくことでクリップボードへ画面をコピーするのが簡単になるので便利です。
ただ、Windows キーも、Windows 側で割り当てられていないキーについては、押しながら一度押せば Mac OS X 側に [Command] と入力キーという形で送信されるのですけど、Windows 側にそれが割り当てられている場合には Windows 側での処理となるので、少し紛らわしいかもしれません。
接続先の Mac へ入力できない記号について
冒頭でも少し触れましたが、Mac OS X 10.6 の画面共有へ接続してみた場合、自分の環境化ではイコール記号 (=) とシングルクォーテーション ( ' ) を入力できませんでした。
入力しようとすると、それぞれプラス記号 (+) とダブルクォーテーション ( " ) になってしまう感じで、英語キーボード配列として誤認されているということもないようです。
とりあえず RealVNC 4.1.3 のソースコードが入手できたので、詳しい方にも教えて頂きながらいろいろ調整をして、何とか無理やりこれらの記号が入力できるようになりました。
以来、半年以上この調整した VNC を利用して Windows 7 から Mac OS X へ接続して、毎日のようにプログラミングをしていますけど、必要な都度 Mac のキーボードを持ち替えてコーディング作業を行うよりは断然快適になりました。
クリップボードの共有については修繕できていないので、若干不便は残りますが、この辺りはとりあえず IP Messenger というアプリケーションを使用して、テキストを転送するという形で何とかやっています。こちらについては EZ-NET IP Messenger で Windows と Mac OS X 間でテキストを交換する でも記してありますので、興味がありましたらご覧ください。
これについて、興味を持たれる方がけっこういらっしゃるみたいなので、無理やり感の拭えない修正になっていますが、調整したプログラムを公開しておこうと思います。きっと、無いよりはずっと良いと思います。
- RealVNC 4.1.3 調整版バイナリ (152 KB)
- RealVNC 4.1.3 調整版ソースコード (10.8 MB)
最小限、調整版バイナリのみをダウンロードして頂ければ大丈夫です。調整版ソースコードは必要に応じてダウンロードしてください。
GPL 版の RealVNC Viewer 4.1.3 のソースコードを調整して、イコール記号とシングルクォーテーションが Mac 側に正しく送信されるように調整したものになっています。また、クリップボードの転送はディフォルトで無効になるようにしてあります。
上記から "RealVNC 4.1.3 調整版バイナリ" をダウンロードして、それを展開、出来上がった "vncviewer.easystyle.exe" ファイルを RealVNC がインストールされているフォルダーにコピーして実行すれば、動作するのではないかと思います。
バイナリープログラムは Visual Studio 2008 でビルドしていますので、もしかするとそれらに適切なランタイムライブラリーが必要になるかもしれません。
もっと正しい修正の仕方や、クリップボードへの対応方法など、ご存じの方がいらっしゃいましたらぜひ教えて頂ければと思います。