0

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

なぜこれが起こっているのか、私にはよくわかりませんし、常に起こるとは限りません。これを防ぐための助けをいただければ幸いです。そのフォルダーを削除できることはわかっていますが、それが最後の手段でない限り、本当にやりたくありません。

ありがとう

4

0 に答える 0