Windows 7 の C:\ProgramData\Microsoft\Windows\Start Menu\Programs の StartMenu グループにいくつかのショートカットを作成する必要があります。
最初にデスクトップにショートカットを作成し、C:\ProgramData\Microsoft\Windows\Start Menu\Programs\ にコピーします。ショートカットはここから適切に機能しますが、奇妙なことに、プログラムを実行した場所からフォルダー構造が作成され、スクリプトを実行した後、フォルダー構造は次のようになります
%SystemDrive%\ProgramData\Microsoft\Windows\Caches
私はJavaプログラムからvbscriptを実行しています
Process p = Runtime.getRuntime().exec(cmd, env);
result = p.waitFor();
cmd ここはwscript.exe (path of temp file which is the vbscript)
env です。vb スクリプトに渡す引数です。
私のvbscriptは以下の通りです
set WshShell = WScript.CreateObject("WScript.Shell")
Set WshEnv = WshShell.Environment("Process")
startMenu = WshShell.SpecialFolders("AllUsersStartMenu")
shortcutPath=WshShell.ExpandEnvironmentStrings("%shortcut_path%")
type=WshShell.ExpandEnvironmentStrings("%type%")
mydir = "\Programs\" & type & "\"
program_dir = startMenu & mydir
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FolderExists(program_dir) = 0) Then
execCommand = "C:\Windows\system32\cmd.exe /C md """ & program_dir & ""
Set execStatus = WshShell.Exec(execCommand)
' command md take a time, this can be fail for .Save
If execStatus.Status = 0 Then
WScript.Sleep 1000
End If
End If
Set fs1 = CreateObject("Scripting.FileSystemObject")
If (fs1.FolderExists(program_dir)) Then
fs1.CopyFile shortcutPath,program_dir
End If
Set fs1 = Nothing
なぜこれが起こっているのか、私にはよくわかりませんし、常に起こるとは限りません。これを防ぐための助けをいただければ幸いです。そのフォルダーを削除できることはわかっていますが、それが最後の手段でない限り、本当にやりたくありません。
ありがとう