<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS: Подправить скрипт для создания ярлыка на панели задач]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=16007&amp;type=atom" />
	<updated>2021-01-24T07:53:36Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=16007</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Подправить скрипт для создания ярлыка на панели задач]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=145380#p145380" />
			<content type="html"><![CDATA[<p><strong>user7256</strong>, день добрый.</p><p>Я бы предложил заменить конструкцию с With </p><div class="codebox"><pre><code>
    With WScript.CreateObject(&quot;Shell.Application&quot;)
        With .Namespace(objFSO.GetParentFolderName(objFile))
            With .ParseName(objFSO.GetFileName(objFile))
                .InvokeVerb(&quot;{:}&quot;)
            End With
        End With
    End With
</code></pre></div><p>на</p><div class="codebox"><pre><code>CreateObject(&quot;Shell.Application&quot;) _
	.Namespace(objFSO.GetParentFolderName(objFile)) _
	.ParseName(objFSO.GetFileName(objFile)) _
	.InvokeVerb(&quot;{:}&quot;)</code></pre></div><p>With нужен только если в выделенных местах необходимо множественное обращение к свойствам и методам исходного объекта на текущем уровне вложенности:</p><div class="quotebox"><blockquote><p>With WScript.CreateObject(&quot;Shell.Application&quot;)<br />		<span style="color: red">----&gt;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; With .Namespace(objFSO.GetParentFolderName(objFile))<br />			<span style="color: red">----&gt;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; With .ParseName(objFSO.GetFileName(objFile))<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .InvokeVerb(&quot;{:}&quot;)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End With<br />			<span style="color: red">----&gt;</span><br />&nbsp; &nbsp; &nbsp; &nbsp; End With<br />		<span style="color: red">----&gt;</span><br />&nbsp; &nbsp; End With</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2021-01-24T07:53:36Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=145380#p145380</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Подправить скрипт для создания ярлыка на панели задач]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=145361#p145361" />
			<content type="html"><![CDATA[<p>Этот вариант не сработал.<br />Но я понял, что я сам ошибся.<br />Решил свою проблему, установив Рабочую папку в свойствах изначального lnk-файла.<br />Если не было прописано там, то и на панели задач не будет прописано.<br />Мой lnk-файл создавался в другом скрипте, а там можно выстановить эту рабочую папку.</p><p>Вам отдельное спасибо за желание помочь и плюс в карму.</p>]]></content>
			<author>
				<name><![CDATA[user7256]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41312</uri>
			</author>
			<updated>2021-01-23T19:32:15Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=145361#p145361</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Подправить скрипт для создания ярлыка на панели задач]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=145354#p145354" />
			<content type="html"><![CDATA[<p><strong>user7256</strong><br />Мне не хочется экспериментировать с модификацией реестра на своём компьютере, поэтому попробую чисто теоретически предложить:</p><div class="codebox"><pre><code>    
    With WScript.CreateObject(&quot;Shell.Application&quot;)
        With .Namespace(objFSO.GetParentFolderName(objFile))
            With .ParseName(objFSO.GetFileName(objFile))
                .InvokeVerb(&quot;{:}&quot;)
&#039;&#039;&#039;
                With .GetLink
                    .WorkingDirectory = objFSO.GetParentFolderName(objFile) &#039; или какая должна быть рабочая папка?
                    .Save
                End With
&#039;&#039;&#039;
            End With
        End With
    End With
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[andypetr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40320</uri>
			</author>
			<updated>2021-01-23T16:42:48Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=145354#p145354</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Подправить скрипт для создания ярлыка на панели задач]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=145332#p145332" />
			<content type="html"><![CDATA[<p>Что-то пока не получается.<br />Не могу понять, как это впихнуть в многоуровневый With.</p>]]></content>
			<author>
				<name><![CDATA[user7256]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41312</uri>
			</author>
			<updated>2021-01-23T10:25:50Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=145332#p145332</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS: Подправить скрипт для создания ярлыка на панели задач]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=145279#p145279" />
			<content type="html"><![CDATA[<p><strong>user7256</strong></p><p>Вроде, можно так (пример взят из Automation.chm - пока некогда писать и проверять код):</p><p>Set objShellApp = CreateObject(&quot;Shell.Application&quot;)<br />Set objFolder=objShellApp.NameSpace(&quot;C:\&quot;).ParentFolder.ParentFolder &#039;рабочий стол<br />Set objFolderItem = objFolder.ParseName(&quot;Paint.lnk&quot;)<br /><strong>Set objSLO = objFolderItem.GetLink<br /></strong>MsgBox objSLO.WorkingDirectory<br /><strong>objSLO.WorkingDirectory = &quot;C:\&quot;<br />objSLO.Save<br /></strong>MsgBox objSLO.WorkingDirectory</p>]]></content>
			<author>
				<name><![CDATA[andypetr]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=40320</uri>
			</author>
			<updated>2021-01-22T16:43:05Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=145279#p145279</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[VBS: Подправить скрипт для создания ярлыка на панели задач]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=145257#p145257" />
			<content type="html"><![CDATA[<p>Есть такой скрипт<br /></p><div class="codebox"><pre><code>
&#039; origin: https://stackoverflow.com/questions/31720595/pin-program-to-taskbar-using-ps-in-windows-10


If WScript.Arguments.Count &lt; 1 Then WScript.Quit
&#039;----------------------------------------------------------------------
Set objFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
objFile    = WScript.Arguments.Item(0)
sKey1      = &quot;HKCU\Software\Classes\*\shell\{:}\\&quot;
sKey2      = Replace(sKey1, &quot;\\&quot;, &quot;\ExplorerCommandHandler&quot;)
&#039;----------------------------------------------------------------------
With WScript.CreateObject(&quot;WScript.Shell&quot;)
    KeyValue = .RegRead(&quot;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer&quot; &amp; _
        &quot;\CommandStore\shell\Windows.taskbarpin\ExplorerCommandHandler&quot;)

    .RegWrite sKey2, KeyValue, &quot;REG_SZ&quot;

    With WScript.CreateObject(&quot;Shell.Application&quot;)
        With .Namespace(objFSO.GetParentFolderName(objFile))
            With .ParseName(objFSO.GetFileName(objFile))
                .InvokeVerb(&quot;{:}&quot;)
            End With
        End With
    End With

    .Run(&quot;Reg.exe delete &quot;&quot;&quot; &amp; Replace(sKey1, &quot;\\&quot;, &quot;&quot;) &amp; &quot;&quot;&quot; /F&quot;), 0, True
End With
&#039;----------------------------------------------------------------------</code></pre></div><p>Я запускаю его из стороннего приложения, передаю аргументом - путь к lnk-файлу, который хочу прикрепить к панели задач.<br />Скрипт хорошо работает. <br />Единственный минус - в свойствах получившегося ярлыка не заполнено поле &quot;Рабочая папка&quot;.<br />А без этого запускаемая программа некорректно работает.<br />Исправить ее не получится (third party app).</p><p>Как в этом скрипте записать еще и рабочую папку?<br /><span class="postimg"><img src="https://i.imgur.com/3Tu1x5l.png" alt="https://i.imgur.com/3Tu1x5l.png" /></span></p>]]></content>
			<author>
				<name><![CDATA[user7256]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=41312</uri>
			</author>
			<updated>2021-01-22T12:19:51Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=145257#p145257</id>
		</entry>
</feed>
