■ホームページ ■ソフトウェア ■VB6.0ランタイム ■エラーの解決策

hmlogo.gif (3796 バイト)

エラーの解決策


VisualBasic6.0ランタイムのインストールで、「Path or File not Found」というエラーが表示されてインストールできない。

 

1.現象

ダブルバイト文字を使用したユーザ名でログインすると、プログラムグループを選択した後のファイルコピーが開始されるタイミングで「Path or File Not Found.」という表示のエラーが発生することがあります。

 

2.原因

Visual Basic 6.0ディストリビューションウィザード(標準のインストーラ)の機能障害です。

〔ソースの場所〕
C:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard\Setup1
にあるsetup1.frm
を下記のように修正し、コンパイルし直しました。

〔コンパイルの場所〕
C:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard

----------------
オリジナル
'使用する一時ディレクトリを取得します。
gsTEMPDIR = String$(255, 0)
lChar = GetTempPath(255, gsTEMPDIR)
gsTEMPDIR = Left$(gsTEMPDIR, lChar)
AddDirSep gsTEMPDIR
gsTEMPDIR = gsTEMPDIR & ReadIniFile(gstrSetupInfoFile, gstrINI_BOOT, gsINI_TEMPDIR)
AddDirSep gsTEMPDIR
----------------
改良
'使用する一時ディレクトリを取得します。
gsTEMPDIR = String$(255, 0)
lChar = GetTempPath(255, gsTEMPDIR)
Dim s As String
s = StrConv(gsTEMPDIR, vbFromUnicode)
s = LeftB(s, lChar)
gsTEMPDIR = StrConv(s, vbUnicode)
AddDirSep gsTEMPDIR
gsTEMPDIR = gsTEMPDIR & ReadIniFile(gstrSetupInfoFile, gstrINI_BOOT, gsINI_TEMPDIR)
AddDirSep gsTEMPDIR

〔参考〕
マイクロソフト サポート技術情報 - 416585

 

3.解決方法

(1)VB6RTEST Ver.3.22 以降のバージョンをお使い下さい

Ver.3.21→Ver.3.22の変更点

  • ディストリビューションウィザードを修正し、ダブルバイト文字を含むユーザ名のログインに対応した。(「Path or File Not Found.」のエラー回避。)

VB6.0ランタイム」へ

(2) (1)で解決されない場合や、VB6RTEST(Ver.3.21以前のバージョン)を使用する場合

解決策@

  • ダブルバイト文字(漢字、ひらがな等)を含むユーザ名でログインしているならば、シングルバイト文字(半角英数字)のみのユーザ名で再度ログインしてsetup.exe を実行して下さい。
  • Windows XP ならば、administrator でログインしてみて下さい。
  • Windows XP の最初のユーザ名の場合、ユーザ名を変更しても、内部的にはコンピュータの名前が使用されているため、新しいアカウントを作成してインストールしてください。その後、通常のアカウントでログインして下さい。

解決策A

  • 既存のユーザ名でログインした場合、環境変数 TMP をシングルバイトのパスに変更し、setup.exe を実行して下さい。

Windows XP の場合

  • 「マイコンピュータを右クリック」−「プロパティ」−「詳細設定」−「環境変数」−「ユーザー環境変数」を編集。
  • このとき、シングルバイトパスに変更します。

 

4.詳細・その他

  • Windows 2000/XP ではユーザー環境変数 TMP はユーザーごとに異なり,その値にはユーザー名(%USERPROFILE%) が含まれます。ディストリビューションウィザードは、CAB ファイルを展開するために環境変数 TMP で指定されているディレクトリを使用しますが、そのパスにダブルバイト文字が含まれていると、TMP を正しく取得することができずエラーが発生します。
  • Windows 95/98/Me においても、環境変数 TMP がダブルバイト文字列を含むパスに設定されている環境ではエラーが発生します。
  • ユーザ名としてダブルバイト文字を使用すること自体はなんの問題もありませんが、半角英数字がより好ましいと言えます。
  • Windows 2000/XP では、各種ソフトのインストールには、「administrator」等、半角英数字のユーザ名を使用することをお勧めします。

return.gif (987 バイト)

■ホームページ ■ソフトウェア ■VB6.0ランタイム ■エラーの解決策