0

vbscript を使用して、特別なフォルダーからメッセージ ボックスである exe を起動したいのですが、何も得られません。これは私のコードです

option explicit
dim shellobj,startup,objShell,objFolder,filesystemobj,installdir,installname
set shellobj = wscript.createobject("wscript.shell")
set filesystemobj = createobject("scripting.filesystemobject")
Set objShell = CreateObject("Shell.Application")
installdir = "%appdata%\Microsoft"
installname = wscript.scriptname
filesystemobj.copyfile wscript.scriptfullname,installdir & installname,true
startup = shellobj.specialfolders("%appdata%\Microsoft") &"\msg.exe"
if filesystemobj.fileexists(startup) Then
  shellobj.run "wscript.exe //B " & chr(34) & startup & chr(34)    
  Wscript.Quit
end if
4

1 に答える 1

0
  1. startup = shellobj.specialfolders("%appdata%\Microsoft") &"\msg.exe"

    プロパティはSpecialFolders環境変数を展開しません。ExpandEnvironmentStringsそのためのメソッドが必要です:

    shellobj.ExpandEnvironmentStrings("%APPDATA%\Microsoft") & "\msg.exe"
    

    プロパティは次のSpecialFoldersように使用する必要があります。

    shellobj.SpecialFolders("APPDATA") & "\Microsoft\msg.exe"
    
  2. if filesystemobj.fileexists(startup) Then

    specialfolders("%appdata%\Microsoft")空の文字列を返すため、 の値は存在startup\msg.exeません。Thenしたがって、ブランチ内のステートメントは実行されません。

  3. shellobj.run "wscript.exe //B " & chr(34) & startup & chr(34)

    また、「\msg.exe」が存在していても、.exe では実行できませんwscript.exewscript.exeVBScript のインタープリターの 1 つです。そのステートメントを次のように変更します。

    shellobj.Run Chr(34) & startup & Chr(34), 1, True
    
于 2013-10-03T11:53:29.097 に答える