• 締切済み

CreateShortcutメソッドについて

お世話になります、以下CreateShortcutメソッドについて引っかかってしまいましたので ご存知の方、知恵を貸してください。 以下のようにAllUserデスクトップとAllUserプログラム下にショートカットを作成しようと考えています。スクリプトを実行すると、デスクトップにショートカットが作成され、ちょっと時間が経ってからもう一つデスクトップにショートカットが作成され、計デスクトップに二つ、プログラム下に1つ作成される状態になります。 この状態で再起動を掛けると表示はデスクトップに一つ、プログラム下に一つに戻っています。 いろいろと試行錯誤してはみましたが理由が分かりません。 一つショートカットを作成し、それをコピーすれば良い話ではありますが、原因が分かる方ご教授下さい。 以上、よろしくお願いいたします。 -----ここから----- set objFS = Scripting.FileSystemObject set objWshShell = WScript.Shell Dim strFileName, strFileName1, objShortCut, objShortCut1 strFileName = objWshShell.SpecialFolders("AllUsersDesktop") & "\test.lnk" strFileName1 = objWshShell.SpecialFolders("AllUsersStartMenu") & "\プログラム\test.lnk" If not objFS.FileExists(strFileName) then   Set objShortCut = objWshShell.CreateShortcut(strFileName)   objShortCut.TargetPath = objWShShell.ExpandEnvironmentStrings("%ProgramFiles%") & "\test\Bin\test.exe"   objShortCut.Save end If set objShortCut = Nothing If not objFS.FileExists(strFileName1) then   Set objShortCut1 = objWshShell.CreateShortcut(strFileName1)   objShortCut1.TargetPath = objWShShell.ExpandEnvironmentStrings("%ProgramFiles%") & "\test\Bin\test.exe"   objShortCut1.Save end If

みんなの回答

  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.1

スクリプトの先頭2行を正しく書き、2バイトコードの空白を1バイトコードに直して試したところ、私のWindows XP SP2では問題ありません。デスクトップに一つ、プログラム下に一つショートカットができました。 推定ですが、ご質問のスクリプトは実際に動かしているものとは異なり、抜粋ではないでしょうか。「ちょっと時間が経ってから」という動きはここには見えません。もちろんWindowsか何かの不具合の可能性はありますが、私の環境では問題ありませんでした。

drinkers
質問者

補足

ありがとうございます。 おっしゃるとおり抜粋のものになりますが、先頭行に2行追加し実行したところ現象は再現いたしました。 他のクライアントで現象が発生しないようであれば端末依存の可能性もありますね。

すると、全ての回答が全文表示されます。

関連するQ&A