特集
VB6アプリのWindows Vista対応(後編)

Vista上で動作するVB6アプリの作り方

codeseek 衣川 朋宏
2008/02/05
Page1 Page2 Page3

 前編に引き続き、VB6で作成されたクライアント・アプリ(以下、VB6アプリ。「アプリ」は「アプリケーション」の略)をWindows Vistaに対応させる方法を紹介する。今回は、Vista対応のためのVB6アプリの修正方法と運用時の注意点、VB6の今後について説明する。

3. Vista上でのVB6アプリの運用・修正編

 前編ではVistaにVB6アプリを導入するまでを説明した。めでたく導入ができたといっても、残念ながらまだ油断はできない。むしろこれからが本当の問題である場合も多いのである。

 まず始めに、デザイン的な問題が挙げられる。グラフィカルなUIを作成できるWPF(Windows Presentation Foundation)アプリと比較して見劣りがしてしまうのはいうまでもないが、.NETで作成されたWindowsフォーム・アプリと比較しても、VB6アプリのデザイン的な見劣りはいかんともしがたい。

 次の2つの画面は、VB6アプリ(上)と.NETによるWindowsフォーム・アプリ(下)の例である。もちろんどちらもVista上で実行している。

VB6アプリの例

.NETによるWindowsフォーム・アプリの例

 これらの画面で分かるように、VB6アプリと.NETによるWindowsフォーム・アプリでは、若干見え方が異なる(特に、ボタンの微妙なデザインの差にご注目いただきたい)。

 このようなデザイン的な問題はともかく、ほかにも多くの問題があるので、ここで取り上げていきたい。

UAC(ユーザー・アカウント制御)−再び

 「2. VistaへのVB6アプリの導入」で取り上げたUACの問題は、ここでも同様に発生する。具体的には、出力したはずのフォルダに出力していない(=仮想化されたフォルダに出力されている)、あるいは、UACによりアクセスが拒否されるという問題である。

 内容は重複するので割愛するが、実行時に特に問題となるケースは以下のとおりである。

  • 複数のシステムで中間ファイルを使い回すような場合
  • 同じアプリであっても、複数のアカウントで同じファイルを使い回すような場合(設定情報ファイルや中間ファイルを出力し、別アカウントでも再度読み込む場合)

 フォルダの仮想化により出力位置が変更されてしまうので、(本来あるべき場所に)アクセス対象のファイルが存在しないというケースが想定される。このような場合には、ソース・コードを修正して、出力先を変更する必要がある。

 また、内部動作でUAC警告が出る場合には、ファイルのプロパティより[互換性]タブを使用して[特権レベル]を設定するという選択肢もある。

ファイルのプロパティの[互換性]タブ
ファイルのプロパティより[互換性]タブを使用して[特権レベル]を設定する。[互換性]タブの内容について詳しくは「マイクロソフト:Windows ヘルプと使い方−このバージョンの Windows で古いプログラムを実行する方法」を参照されたい。
  [管理者としてこのプログラムを実行する]チェックボックスにチェックを入れる。

 上記のをチェックした状態にしておけば、アプリは管理者として実行されるので、UACに関する問題はかなり軽減される。

 しかしながら、展開しているクライアントが数十台ある場合、あるいは複数拠点にある場合には、すべてにこの設定をして回るのが果たして現実的な選択肢であるのか、という問題は残る。

 いっそのこと、Vista全体のUACを無効にしてしまえばよいのでは……と思いがちである。確かに、いろいろと面倒であるし、考慮すべき問題が多いため、無効にしたくはなる。しかしながら、個人使用であればともかく、企業内においてUACを無効にして使用するのは、各種リスク管理という面から見て、推奨できるものではない(UACを無効にする方法については、「Windows Tips: Windows Vistaのユーザー・アカウント制御(UAC)を一時的に無効にする」を参照されたい)。


 INDEX
  [特集]
  VB6アプリのWindows Vista対応(前編)
  VB6アプリをVistaで動かすための基礎知識
    1.VB6のサポート期限の問題
    2.VistaへのVB6アプリの導入
 
  VB6アプリのWindows Vista対応(後編)
  Vista上で動作するVB6アプリの作り方
  1.Vista上でのVB6アプリの運用・修正編(UAC関連)
    2.Vista上でのVB6アプリの運用・修正編(フォント関連)
    3.VB6の今後



Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH