2011年5月27日金曜日

WSHにドラッグ&ドロップした場合のカレントディレクトリの取得について

VBScriptをドラッグ&ドロップにて実行した場合、以下の方法ではカレントディレクトリのパスが取れない。
  1. Option Explicit

  2. Dim objShell
  3. Set objShell = CreateObject("WScript.Shell")

  4. 'カレントディレクトリのパスを取得
  5. MsgBox objShell.CurrentDirectory

  6. Set objShell = Nothing
なぜか、


WindowsXPの場合:C:\Documents and Settings\[ユーザー名]
Windows7の場合:C:\Windows\System32


となってしまう。
VBScriptをどこにおいても、またドラッグ&ドロップするファイルが存在するパスに関係なく、このフォルダをカレントディレクトリと誤認する。
ただし、特殊フォルダのパスを取得することは可能。
  1. Option Explicit

  2. Dim objShell
  3. Set objShell = CreateObject("WScript.Shell")

  4. 'デスクトップのパスを取得
  5. MsgBox objShell.SpecialFolders("Desktop")

  6. Set objShell = Nothing

0 件のコメント:

コメントを投稿