Akira's Commentary

入手

AT&T ケンブリッジ研究所の Downloading VNCのページでは、

  • Windows 9x/2000/NT (Intel Win32) バイナリ
  • Windows ソース

のパッケージがあります(1)。 私は素直にバイナリパッケージからインストールしました。 バイナリパッケージは約1MBで、ビューワ、サーバの両方が 含まれています。

     986660 Jan  5 14:28 vnc-3_3_3r2_x86_win32.zip

これを展開すると、 「vnc_x86_win32」ディレクトリ以下にビューワ、サーバが展開されます。 展開後のサイズはだいたい1.3MBになります。

インストール

インストールするには、 「vnc_x86_win32\winvnc」のsetupプログラムを実行します。

Setup Program

後はセットアッププログラムの指示に従っていけばOKです。

Step 1 
Step 1
すでに(古いバージョンの)VNCがインストールされている場合には、 VNCを止めておくこと、更にできれば アンインストールしておくことが望ましいとされています。
Step 2 
Step 2
標準のインストール開始の画面です。素直に「Next」しましょう。
Step 3 
Step 3
ライセンスの確認です。VNC自体はGPLで配布されていますが、 いくつか他のライセンス(やはりフリーですが)のものも 含まれています。
Step 4 
Step 4
インストール先を指定します。 サーバ、ビューワともにここで指示したフォルダにインストールされます。 デフォルトのインストール先は未だにORL\VNCですね。 必要なディスク容量は(NTFSで)415KBです。
Step 5 
Step 5
作成するプログラムフォルダの確認です。
Step 6 
Step 6
これでインストールは完了です。 指示通りにリブートします。

これによって、フォルダ、スタートメニューが以下のように設定されます。

フォルダ 
VNC Folder
スタートメニュー 
VNC Start Menu

ビューワを使ってみよう

インストールが完了すればビューワはすぐに使えます。 スタートメニューから

プログラム ⇒ VNC ⇒ Run VNCviwer

で起動できます。

起動されるとコネクションダイアログが表示されます。

Connection Detail

VNC server のフィールドは、最初に起動した時は空白ですが、 それ以降は直前に接続したサーバ名(ホスト:ディスプレイ番号)が 表示されます。ここはプルダウンリストになっていて、 以前に接続したサーバを簡単に選ぶことができるようになっています。 サーバを入力/選択してOKボタンを押せばサーバへの接続を開始します。

サーバが存在していない場合、あるいは接続を拒否する場合には エラーが表示されて終了します。 指定したVNCサーバがちゃんと存在していて接続されると、 認証ダイアログを表示してユーザ認証を求めてきます。

VNC Authentication

パスワードが正しければVNCセッションが始まり、 ビューワ上にリモートデスクトップが表示されます。 例えばUNIXのXvncサーバに接続した場合には 以下のような画面(仮想Xデスクトップ)が表示されます。

VNC Desktop

Xvncとビューワの組み合わせは、 だいたい通常のXと同じように使うことができます。 通常のXとの違いは、基本的には UNIXへのインストール仮想Xデスクトップ で説明したものと同じです。 ただ、Windows用のビューワ独自の違いもいくつかあります。

ローカルキーの問題
Windows用のvncviewerの場合には、 以下のようなキー入力がローカルマシン側で処理されてしまい、 サーバには通知されません。
  • Ctrl-Alt-Del
  • Ctrl-Esc
  • Alt-Tab
これらのキーをサーバに通知するには、メニューを使用します。 VNC viewerのメニューはシステムメニュー(左上のアイコン)から 呼び出されます。

Windows Viewer Menu

Ctrl-Alt-Delについてはメニュー項目がありますので、それを使います。 他のキーは、Ctrl Down/Up、Alt Down/Upと組み合わせて送るようにします。 例えば、Alt-Tabを送るには、Alt Down、Tabキー、Alt Up、と送信します。
NLSキーの問題(FAQ31)
この問題は、実はビューワだけの問題ではなく、 Windows用のサーバの問題でもあります。 VNCではキーをXのkeysymとして通知します。 現在のWindows用ビューワでは、 そもそも漢字変換関係のキーを認識しないのでサーバに通知されません。 X用のビューワでは、Xの構成次第ではサーバに通知されるのですが、 今度はWindows用サーバが、その手のキーイベントを無視してしまいます。 このため、VNC経由でWindowsを使った場合には、 ビューワが何であれ、日本語の入力ができないことになります。 これは結構きつい制約になると思います。
私の場合には、手元のビューワ(OS/2 PM)とWindowsとが 同じ文字コードを使っていますので、 日本語入力はすべてクリップボード経由で行なっています。 ですが、Xビューワを使っているとこれも駄目ですね。
一番いいのは、Windows用のビューワ、サーバを修正して 日本語処理が可能になるようにすることです。 これについては、静岡大学の 小山さん が卒論で扱われたそうで、修正方法等についての説明がでています。 ただ残念なことに、卒業後しばらくしたらページが無くなってしまいました。
しかし、最近になって(2002/05)、 新たに日本語対応版を作成された方がいらっしゃいます。 詳しくは Windows VNC 日本語対応をご覧ください。

さて、 ビューワを起動して最初に表示されるコネクションダイアログで 「Options...」ボタンを押すと、 コネクションオプションを設定するダイアログが表示されます。 これはビューワのメニューの「Connection Options...」からでも 呼び出すことができます。

Connection Options

このダイアログで設定できる各種のオプションは、ビューワの コマンドラインからも指定できます。これらの詳細については 以下のドキュメントを御覧ください。

VNCviewer for Windows 原文 翻訳

ここではよく使われそうな項目についてだけ、簡単に説明しておきます。

Preferred Encoding
優先的に受け取りたい矩形エンコーディングの方法を指示します。 Windows版ビューワの場合にはだいたいデフォルトのHextileでいいと思います。 場合によってはRawの方がいい場合もあります。 このあたりはサーバとの組み合わせ、 ネットワークの状況等で変わりますので、 いろいろと試してみるといいでしょう。
Request Shared Session (Option -shared)
複数のビューワで同じリモートデスクトップを共有することを指示します。 なお、最近のサーバでは、サーバ側で共有の有無を指定して、 ビューワからの指示を無視するように 設定することもできるようになっています。
Deiconify on Bell (Option -belldeiconify)
サーバ側でベルが発生した場合に、 ビューワがアイコン化(最小化)されていたなら、 自動的にリストアするようにします。 UNIX/Xとの組み合わせで使っていると、wallやwrite、talkで 画面がリストアされますので結構便利です。 なお、この機能を使う時には、xtermなんかのvisible bellを オフにしておかないと意味がありません。
Restrict pixels to 8-bit (Option -8bit)
サーバから送られてくるピクセルデータを8ビットのBGR233形式にします。 これによってネットワーク負荷が軽減されますので、 低速のネットワーク経由でVNCを使っているような場合には効果があります。
Full-screen mode (Option -fullscreen)
サーバ側のリモートデスクトップと ローカルマシンのディスプレイのサイズが同じなら、 これによって、 ローカルマシンの画面全体にリモートデスクトップを表示することができます。

WinVNCサーバの起動

WinVNCサーバを使うには、最初にレジストリの設定が必要です。 レジストリを設定するには、スタートメニューから

プログラム ⇒ VNC ⇒ Administrative Tools ⇒ Install Default Registry Settings

を実行します。 レジストリが正常に設定されたなら以下のようなメッセージが表示されます。

Registry Setting

これで、WinVNCをアプリケーションモードで 起動することができるようになります。 スタートメニューから以下のように起動します。

プログラム ⇒ VNC ⇒ Run WinVNC (App Mode)

サーバが起動されるとタスクバーに小さなVNCアイコンが表示されます。

VNC Icon on TaskBar

このアイコンを右クリックするとサーバのメニューが表示されます。

WinVNC Menu

このメニューから以下の処理を実行することができます。

Properties
Propertiesダイアログを表示します。 Propertiesダイアログによって いろいろなWinVNCのパラメタを変更することができます。
Add New Client
サーバからビューワへのOutgoing Conenctionをはります。 これはlisteningモードのビューワと組み合わせて使用します。
Kill All Client
サーバに接続しているすべてのクライアント(ビューワ)を切断します。
About WinVNC
説明するまでもないでしょう。
Close
サーバを終了させます。

VNCサーバのパラメタはPropertiesダイアログで設定します。

WinVNC Properties Dialog

まずはパスワードを設定しましょう。 パスワードを設定しておかないとデスクトップが触り放題になってしまいます。 ここで設定したパスワードは、ビューワ起動時に入力するものです。 なんでも適当な値を入れておきましょう。

他に変更する必要があるものは 「Update Handling」ぐらいだと思います。 WinVNCサーバは、フックによって画面の更新範囲を取得しています。 しかし、Windowsでは 一般的、確実、高速に描画領域を取得することができませんので、 WinVNCサーバは いくつかの手法を組み合わせて更新領域を求めるようにしています。 「Update Handling」はこの手法を指示するものです。 通常はデフォルトの設定で問題ありませんが、 ビューワ側の表示がサーバ側のデスクトップとずれるようでしたら、 設定を変えてみるといいでしょう。

なお、WinVNCサーバの詳しい使い方、設定については 以下のドキュメントを御覧ください。

WinVNC - The Windows NT VNC server 原文 翻訳

WinVNCをサービスとして実行

VNCを使ってリモートアクセスするには、 リモート側でサーバが動作していなければなりません。 WinVNCをサービスとして登録すると、 システムのブート時に自動的にWinVNCサーバが起動されますので、 いつでもリモートデスクトップにアクセスすることができるようになります。 以前のバージョンでは、サービス登録ができるのはNTだけでしたが、 新しいバージョンでは95/98に対してもサービス登録ができるように なりました。

WinVNCをサービスとして登録するには、 管理ツールの「Install WinVNC Service」を実行します。

WinVNC Install as Service

インストールできた場合には以下のメッセージが表示されます。

WinVNC Installed as Service

95/98の場合には、これでWinVNCが起動され、 またサービスとして登録されて以降のブートで自動的に起動されます。 NTの場合には、サービスとして登録され、以降のブートで自動的に 起動されるようになります。しかしNTの場合にはこの時点では 起動されません。すぐに起動するにはコントロールパネルの サービスからVNC Serverを選択して開始してください。

WinVNC Start Service

ただ、ここでサービスを起動してもWinVNCはタスクバーに表示されません。 表示させるには管理ツールの「Run Service Helper」を実行します。 以降は、ログイン情報が自動的に渡されますのでこれ無しでも きちんと表示されるようになります。

NTでサービスとして登録しておくと、ログインからログアウトまでを リモートのビューワから操作することができるようになります。

普通のアプリケーションとして実行した場合には、ログイン前には 動作していませんのでアクセスできませんし、ログアウトすると アプリケーションも終了してしまうのでそこで接続が切れてしまいます。

ですが、いくつか問題もありますのでここで挙げておきます。

  • WinVNCはウィンドウズをマルチユーザ化するものではありません。 単にデスクトップをネットワーク経由で延長するだけのものです。 ある時点でログインしているユーザだけがデスクトップを使用できます。
  • ログイン画面のサイズとユーザの画面サイズとが異なっていると、 ログイン後に一旦接続が切れてしまいます。 これはVNCのプロトコル上の制約によるものです。 再度接続すれば何も問題無く使用できます。
  • デフォルトの設定では、後から接続した方が優先され、 先に接続していたセッションは切られてしまいます。 これは単一ユーザがいろいろなところから遠隔アクセスする場合には 便利なのですが、一台のマシンを複数の人が共有するような 場合には反って不便になります。 ただ、これについてはレジストリ(ConnectPriority)で 変更することもできます。
  • 共有する場合に、各自が勝手に設定を変えると 他の人からは訳がわからなくなる可能性があります。 ですがこれも 新しいサーバではユーザ個別の設定と共通の設定とが できるようになりましたし、 またレジストリ(AllowProperties)によって 変更を禁止することもできるようになっています。

このあたりの、WinVNCサーバの詳しい使い方、設定についてはやはり 以下のドキュメントを御覧ください。

WinVNC - The Windows NT VNC server 原文 翻訳