Как запустить ярлык с помощью WSH
пытаюсь запустить ярлык из скрипта, но никак не получается
fso = new ActiveXObject("Scripting.FileSystemObject"); wsh = new ActiveXObject("WScript.Shell"); WindowsDir = fso.GetSpecialFolder(0); lnkrun = "c:\\test.lnk"; exerun = WindowsDir + "\\notepad.exe"; wordir = "c:\\"; var s = wsh.CreateShortcut(lnkrun); s.WindowStyle = 4; s.IconLocation = exerun; s.TargetPath = exerun; s.WorkingDirectory = wordir; s.Save(); wsh.Run( lnkrun ); // не работает wsh.Run( "start " + lnkrun ); // ошибка: не найден файл (не может найти start) ярлык C:\test.lnk успешно создается и ведет к Блокноту, может быть запущен из проводника, но в скриптах возникают проблемы, в первом вызове wsh.Run вообще ничего не происходит, во втором вываливается ошибка (даже если точно прописать путь к программе start которая явно существует) не работает на win10, win7, даже на XP не пашет, в чем может быть проблема? |
VBS
Set WshShell = CreateObject("WScript.Shell") path = WshShell.CurrentDirectory + "\" fldr = WshShell.SpecialFolders("Desktop") + "\" Set WshShortcut = WshShell.CreateShortcut(fldr + "test.lnk") WshShortcut.IconLocation ="shell32.dll, 1" WshShortcut.Description = "Test" WshShortcut.Arguments = "C:\file.txt" WshShortcut.TargetPath = "notepad.exe" WshShortcut.WindowStyle = 1 WshShortcut.WorkingDirectory = path WshShortcut.Save WshShell.Run fldr + "test.lnk" |
laimas спасибо, но решение нужно именно на JS
решение нашлось, может кому пригодится: (запуск ярлыка идет через командную строку насколько я понял) wsh = new ActiveXObject("WScript.Shell"); lnk = "c:\\test.lnk"; wsh.Run( "%comspec% /c \"" + lnk + "\"" , 0 ) |
Разница большая? Там reateObject, а там ActiveXObject, и путь указать корректно.
|
laimas твой пример не работает, возникает ошибка "Не удается найти указанный файл" на строке 14
|
Цитата:
|
var wsh = new ActiveXObject("WScript.Shell"), pth = wsh.CurrentDirectory + "\\", //текущая папка lnk = wsh.CreateShortcut("main.lnk"); //создать ярлык в текущей папке lnk.IconLocation = "shell32.dll, 1"; lnk.Description = "Test"; lnk.Arguments = "test.txt"; lnk.TargetPath = "notepad.exe"; lnk.WindowStyle = 1; lnk.WorkingDirectory = pth; lnk.Save(); wsh.Run(lnk); //блокнот откроется с запросом на создание файла, если его нет в текушей папке |
Часовой пояс GMT +3, время: 15:25. |