Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   создание ярлыка (http://forum.oszone.net/showthread.php?t=284553)

basilio666 03-07-2014 21:56 2371765

создание ярлыка
 
возникли трудности в создании ярлыка. Помогите пож-та.
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 2371836

Цитата:

Цитата basilio666
ошибка в строке: oShellLink.TargetPath = "C:\Windows\System32\javaws.exe https://imya_servera.jnlp". Расположение объекта не принимается. »

Всё верно.

Цитата:

Цитата basilio666
Через проводник - создать ярлык проблем с созданием нет »

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

Пробуйте:
Код:

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 2371873

Iska, спасибо, все получилось, я новичок в написании скриптов, не учел, что можно указать аргумент.

sov44 25-08-2015 22:48 2545993

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

Iska 25-08-2015 23:44 2546004

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

sov44 26-08-2015 09:59 2546067

К примеру нужно создать ярлык в 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 2546186

«утилиты» — должна уже существовать или должна создаваться при отсутствии?

Для первого случая:
Скрытый текст
Код:

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 2546238

Iska, директория(?) "утилиты" может быть создана, а может и нет. Делаю сборку, нужен универсальный вариант.

Iska 26-08-2015 16:06 2546247

Тогда — так:
Скрытый текст
Код:

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
Делаю сборку, нужен универсальный вариант. »

??!

sov44 26-08-2015 17:02 2546277

Iska, в win7x64 ссылка на ярлык получилась в Program Files (x86), а нужно, чтобы на всех разрядностях было Program Files

gora 26-08-2015 17:48 2546296

Цитата:

Цитата sov44
в win7x64 ссылка на ярлык получилась в Program Files (x86), а нужно, чтобы на всех разрядностях было Program Files »

Запускайте скрипт в среде, соответствующей разрядности и все получится.

Iska 26-08-2015 18:18 2546301

Цитата:

Цитата sov44
Iska, в win7x64 ссылка на ярлык получилась в Program Files (x86), »

См.:
Цитата:

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

и коллегу gora:
Цитата:

Цитата gora
Запускайте скрипт в среде, соответствующей разрядности и все получится. »

Покажите, как именно и откуда Вы исполняете скрипт.

sov44 26-08-2015 19:45 2546324

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


Время: 00:57.

Время: 00:57.
© OSzone.net 2001-