PDA

Показать полную графическую версию : создание ярлыка


basilio666
03-07-2014, 21:56
возникли трудности в создании ярлыка. Помогите пож-та.
set WshShell = WScript.CreateObject("WScript.Shell" )
set oShellLink = WshShell.CreateShortcut("C:\df.lnk" )
oShellLink.TargetPath = "C:\Windows\System32\javaws.exe https://imya_servera.jnlp"
oShellLink.WindowStyle = 1
oShellLink.Description = "Shortcut Script"
oShellLink.WorkingDirectory = "c:\windows\system32\"
oShellLink.Save

ошибка в строке: oShellLink.TargetPath = "C:\Windows\System32\javaws.exe https://imya_servera.jnlp". Расположение объекта не принимается. Просьба помочь решить проблему. Через проводник - создать ярлык проблем с созданием нет

Iska
04-07-2014, 02:29
ошибка в строке: oShellLink.TargetPath = "C:\Windows\System32\javaws.exe https://imya_servera.jnlp". Расположение объекта не принимается. »
Всё верно.

Через проводник - создать ярлык проблем с созданием нет »
И если Вы сделаете аналогично вывод свойств созданного таким образом ярлыка, то явно увидите свою ошибку в создании.

Пробуйте:
With WScript.CreateObject("WScript.Shell").CreateShortcut("C:\df.lnk")
.TargetPath = "C:\Windows\System32\javaws.exe"
.WorkingDirectory = "c:\Windows\System32"
.Arguments = "https://imya_servera.jnlp"
.WindowStyle = 1
.Description = "Shortcut Script"

.Save
End With

basilio666
04-07-2014, 08:34
Iska, спасибо, все получилось, я новичок в написании скриптов, не учел, что можно указать аргумент.

sov44
25-08-2015, 22:48
Подскажите с написанием скрипта создания ярлыка по пути c:\ProgramData\Microsoft\Windows\Start Menu\Programs, с передачей как аргумента пути установки программы.

Iska
25-08-2015, 23:44
sov44, озвучьте какой-нибудь конкретный пример, а то что-то не соображу, «кто на чём стоял» :).

sov44
26-08-2015, 09:59
К примеру нужно создать ярлык в c:\ProgramData\Microsoft\Windows\Start Menu\Programs\утилиты на 7zFM.exe, расположенный в Win7x64 по пути c:\Program Files\7-Zip. Если скрипт будет работать по этому пути на Windows ХР-10 [x86\x64], внешнего аргумента пути устанновки программы не нужно.

Iska
26-08-2015, 13:58
«утилиты» — должна уже существовать или должна создаваться при отсутствии?

Для первого случая:
Option Explicit

Dim objFSO
Dim objWshShell

Dim strFolder

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")

strFolder = objFSO.BuildPath(WScript.CreateObject("Shell.Application").Namespace("shell:ProgramFiles").self.Path, "7-Zip")

With objWshShell.CreateShortcut(objFSO.BuildPath(objFSO.BuildPath(objWshShell.SpecialFolders("AllUsersPrograms"), "утилиты"), "7-Zip File Manager.lnk"))
.TargetPath = objFSO.BuildPath(strFolder, "7zFM.exe")
.WorkingDirectory = strFolder
.Arguments = ""
.WindowStyle = 1
.Description = "7-Zip File Manager"

.Save
End With

Set objWshShell = Nothing
Set objFSO = Nothing

WScript.Quit 0

sov44
26-08-2015, 15:53
Iska, директория(?) "утилиты" может быть создана, а может и нет. Делаю сборку, нужен универсальный вариант.

Iska
26-08-2015, 16:06
Тогда — так:
Option Explicit

Dim objFSO
Dim objWshShell

Dim strFolder

Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")

strFolder = objFSO.BuildPath(objWshShell.SpecialFolders("AllUsersPrograms"), "утилиты")

If Not objFSO.FolderExists(strFolder) Then
objFSO.CreateFolder strFolder
End If

With objWshShell.CreateShortcut(objFSO.BuildPath(strFolder, "7-Zip File Manager.lnk"))
strFolder = objFSO.BuildPath(WScript.CreateObject("Shell.Application").Namespace("shell:ProgramFiles").self.Path, "7-Zip")

.TargetPath = objFSO.BuildPath(strFolder, "7zFM.exe")
.WorkingDirectory = strFolder
.Arguments = ""
.WindowStyle = 1
.Description = "7-Zip File Manager"

.Save
End With

Set objWshShell = Nothing
Set objFSO = Nothing

WScript.Quit 0

Для корректной работы пробуйте исполнять под соответствующей разрядностью.

Делаю сборку, нужен универсальный вариант. »
??!

sov44
26-08-2015, 17:02
Iska, в win7x64 ссылка на ярлык получилась в Program Files (x86), а нужно, чтобы на всех разрядностях было Program Files

gora
26-08-2015, 17:48
в win7x64 ссылка на ярлык получилась в Program Files (x86), а нужно, чтобы на всех разрядностях было Program Files »
Запускайте скрипт в среде, соответствующей разрядности и все получится.

Iska
26-08-2015, 18:18
Iska, в win7x64 ссылка на ярлык получилась в Program Files (x86), »
См.:
Для корректной работы пробуйте исполнять под соответствующей разрядностью. »
и коллегу gora:
Запускайте скрипт в среде, соответствующей разрядности и все получится. »
Покажите, как именно и откуда Вы исполняете скрипт.

sov44
26-08-2015, 19:45
Iska, gora, спасибо, всё получилось. Результат в теме http://forum.oszone.net/post-2546323.html#post2546323




© OSzone.net 2001-2012