<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=10756</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10756&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS: Как программно вызвать окно свойств (Properties) файла».]]></description>
		<lastBuildDate>Thu, 09 Jul 2015 19:05:12 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95194#p95194</link>
			<description><![CDATA[<div class="quotebox"><cite>wisgest пишет:</cite><blockquote><p>; &quot;%SystemRoot%\explorer.exe /separate,%L&quot;</p></blockquote></div><p>Так оно там с висты начиная так уже не работает. /separate под XP нормально отрабатывало. А сейчас все равно будет запускаться в контексте текущего пользователя. Я там выше ссылку по notepad давал. Либо реестр править. В принципе, реестр через групповую политику можно...</p>]]></description>
			<author><![CDATA[null@example.com (inock)]]></author>
			<pubDate>Thu, 09 Jul 2015 19:05:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95194#p95194</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95183#p95183</link>
			<description><![CDATA[<div class="quotebox"><cite>inock пишет:</cite><blockquote><div class="quotebox"><cite>Сервер сценариев Windows (Microsoft R) версия 5.8 пишет:</cite><blockquote><p>Ошибка выполнения Microsoft VBScript: Несоответствие типа: &#039;Sleep&#039;</p></blockquote></div></blockquote></div><p>Не диво, под влияниием AHK написал просто Sleep, вместо WScript.Sleep…</p><p>Насколько я понял задачу, то ранее я её решил для себя добавлением пункта «Запуск от имени...» в контекстное меню папок в Проводнике:<br /></p><div class="codebox"><pre><code>REGEDIT4

[HKEY_CLASSES_ROOT\Folder\shell\runas\command]
@=hex(2):25,53,79,73,74,65,6d,52,6f,6f,74,25,5c,65,78,70,6c,6f,72,65,72,2e,65,\
  78,65,20,2f,73,65,70,61,72,61,74,65,2c,25,4c,00
; &quot;%SystemRoot%\explorer.exe /separate,%L&quot;
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (wisgest)]]></author>
			<pubDate>Thu, 09 Jul 2015 17:58:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95183#p95183</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95102#p95102</link>
			<description><![CDATA[<p>2<strong>inock</strong></p><div class="quotebox"><blockquote><p>Просто запустить проводник со своими правами не получается.</p></blockquote></div><p>У меня на общей шаре лежит Total Commander. Его и запускаю на компах пользователей с админскими правами. Далее ВСЕ (все настройки, установку ПО) делаю из него. Ну ОЧЕНЬ удобно.<br />А что касается прав доступа - тут и TC - лишним будет, т.к. экран пользователя не нужен если Вы, конечно, админ...</p>]]></description>
			<author><![CDATA[null@example.com (mozers)]]></author>
			<pubDate>Wed, 08 Jul 2015 13:43:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95102#p95102</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95098#p95098</link>
			<description><![CDATA[<div class="quotebox"><cite>inock пишет:</cite><blockquote><p>Это просто я пытался понять, чего тут написано</p></blockquote></div><p>И что, стало понятней? <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br /></p><div class="quotebox"><cite>inock пишет:</cite><blockquote><p>Но как раз не работает под 7, ругаясь на .Navigate:</p></blockquote></div><p>Подтверждаю.<br /></p><div class="quotebox"><cite>inock пишет:</cite><blockquote><p>По крайней мере, это - нормальный рабочий вариант. Спс <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />))</p></blockquote></div><p>Пожалуйста. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Wed, 08 Jul 2015 13:22:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95098#p95098</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95090#p95090</link>
			<description><![CDATA[<p>.Navigate &quot;shell:Desktop&quot;</p><div class="codebox"><pre><code>C:\TEMP\VBS&gt;cscript propert2.vbs
Сервер сценариев Windows (Microsoft R) версия 5.8
c Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.

C:\TEMP\VBS\propert2.vbs(9, 20) Ошибка выполнения Microsoft VBScript: Несоответствие
типа: &#039;Sleep&#039;</code></pre></div><p>.Navigate2 &quot;::{E17D4FC0-5564-11D1-83F2-00A0C90DC849}&quot;<br /></p><div class="codebox"><pre><code>C:\TEMP\VBS&gt;cscript propert2.vbs
Сервер сценариев Windows (Microsoft R) версия 5.8
c Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.

C:\TEMP\VBS\propert2.vbs(8, 5) Ошибка выполнения Microsoft VBScript: Недопустимый вызов или аргумент процедуры</code></pre></div><div class="quotebox"><blockquote><p>А чего и зачем надо вообще добиться?</p></blockquote></div><p>Типичная административная задача (изменение прав доступа на файл или папку). Хотелось бы иметь доступ к этим свойствам без того, чтобы логаутить текущего пользователя и заходить под собой. Конечно, можно запускать через runas командную строку с админскими правами и от туда уже работать с icalcs, но согласитесь, это совсем не удобный вариант.&nbsp; Просто запустить проводник со своими правами не получается. То есть в новых операционных системах /separate работает не так, как раньше. Вот я вчера и призадумался... А сегодня оказалось, что таки <a href="http://habrahabr.ru/post/146634/">notepad рулит</a> <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />))</p>]]></description>
			<author><![CDATA[null@example.com (inock)]]></author>
			<pubDate>Wed, 08 Jul 2015 08:42:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95090#p95090</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95089#p95089</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Да, Ваш вариант работает под XP. Но как раз не работает под 7, ругаясь на .Navigate</p></blockquote></div><p>Возможно дело не в Navigate, а в &quot;::{E17D4FC0-5564-11D1-83F2-00A0C90DC849}&quot;?<br />Попробуйте, например </p><div class="codebox"><pre><code>    .Navigate &quot;shell:Desktop&quot;</code></pre></div><p>Если нет, попробуйте также <em>Navigate2</em> вместо <em>Navigate</em> и, пожалуйста, проверьте </p><div class="codebox"><pre><code>    .Navigate2 &quot;::{E17D4FC0-5564-11D1-83F2-00A0C90DC849}&quot;</code></pre></div><div class="quotebox"><blockquote><p>Блин. Ради этого-то все и затевалось...</p></blockquote></div><p> А чего и зачем надо вообще добиться?</p>]]></description>
			<author><![CDATA[null@example.com (wisgest)]]></author>
			<pubDate>Wed, 08 Jul 2015 07:52:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95089#p95089</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95088#p95088</link>
			<description><![CDATA[<div class="quotebox"><cite>Flasher пишет:</cite><blockquote><p>Сам тестирую на 2-й системе. Никаких проблем.</p></blockquote></div><p>Да. Wisgest подсказал в чем дело. Ошибка вываливается, когда пытаешься запустить скрип через runas.</p><div class="quotebox"><blockquote><p>А зачем лишние переделки в коде?</p></blockquote></div><p>Вы имеете ввиду это?<br /></p><div class="codebox"><pre><code>Set wnd = GetObject(&quot;new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}&quot;)
With wnd </code></pre></div><p>Это просто я пытался понять, чего тут написано, и разложил конструкцию на несколько более простых строчек. Знаете, как ребенок предложение целиком не осиливает, а читает по слогам. Я не программер <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />)</p><p>Да! А вот вариант с <br /></p><div class="codebox"><pre><code>With CreateObject(&quot;Shell.Application&quot;)</code></pre></div><p>работает и из-под runas. А Sleep можно и побольше выставить. По крайней мере, это - нормальный рабочий вариант. Спс <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />))</p>]]></description>
			<author><![CDATA[null@example.com (inock)]]></author>
			<pubDate>Wed, 08 Jul 2015 07:48:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95088#p95088</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95087#p95087</link>
			<description><![CDATA[<div class="quotebox"><blockquote><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>FilePath = &quot;C:\Program Files\Far\Far.exe&quot;
With CreateObject(&quot;Scripting.FileSystemObject&quot;)
    ParentFolderPath = .GetParentFolderName(FilePath)
    FileName = .GetFileName(FilePath)
End With
With GetObject(&quot;new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}&quot;)
    .Navigate &quot;::{E17D4FC0-5564-11D1-83F2-00A0C90DC849}&quot;
    While (.Busy): Sleep 1: Wend
    .Document.Application.NameSpace(ParentFolderPath).ParseName(FileName).InvokeVerb(&quot;Properties&quot;)
    .Quit &#039; не обязательно, если окно не делать видимым, оно закроется вместе со скриптом
End With
</code></pre></div></div></div></blockquote></div><p>Да, Ваш вариант работает под XP. Но как раз не работает под 7, ругаясь на .Navigate:<br /></p><div class="codebox"><pre><code>C:\TEMP\VBS&gt;cscript propert.vbs
Сервер сценариев Windows (Microsoft R) версия 5.8
c Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.

C:\TEMP\VBS\propert.vbs(7, 5) Ошибка выполнения Microsoft VBScript: Недопустимый
 вызов или аргумент процедуры</code></pre></div><div class="quotebox"><blockquote><p>Так же должен быть запущен Проводник,&nbsp; т.е. затруднителен запуск от имени другого пользователя.</p></blockquote></div><p>Блин. Ради этого-то все и затевалось <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" />(( А с cacls шаманить очень не наглядно....</p>]]></description>
			<author><![CDATA[null@example.com (inock)]]></author>
			<pubDate>Wed, 08 Jul 2015 07:34:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95087#p95087</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95086#p95086</link>
			<description><![CDATA[<div class="quotebox"><cite>inock пишет:</cite><blockquote><div class="quotebox"><blockquote><p>C:\Temp\test.vbs(8, 3) (null): Неопознанная ошибка</p></blockquote></div></blockquote></div><p>Подтверждаю (Win XP SP3, IE8).</p><p>А я ведь об этом уже <a href="http://forum.script-coding.com/viewtopic.php?pid=73023#p73023">говорил</a>: </p><div class="quotebox"><blockquote><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>У меня, на Windows XP, порождает ошибку при попытке обращения к «.document».</p></blockquote></div><p>Естественно, чтобы был <em>.Document</em> нужен <em>Navigate()</em>.</p></blockquote></div><p>Соответственно и лечится, например, так<br /></p><div class="codebox"><pre><code>    .Navigate &quot;::{E17D4FC0-5564-11D1-83F2-00A0C90DC849}&quot;</code></pre></div><p>(в окно загружается папка «Результаты поиска», т.к. она первоначально заведомо пустая), если по хорошему, то ещё нужна бы проверка <em>.Busy</em>…<br />Работает и без </p><div class="codebox"><pre><code>    .ExecWB 45, 2</code></pre></div><div class="quotebox"><cite>Flasher пишет:</cite><blockquote><div class="codebox"><pre><code>&#039; или заменить на эту строку (но не для всех локалей):</code></pre></div></blockquote></div><p>«<em>Properties</em>» — канонический глагол, <a href="http://forum.script-coding.com/viewtopic.php?pid=94114#p94114">не для всех локалей</a> будет «<em>Сво&amp;йства</em>».<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>FilePath = &quot;C:\Program Files\Far\Far.exe&quot;
With CreateObject(&quot;Scripting.FileSystemObject&quot;)
    ParentFolderPath = .GetParentFolderName(FilePath)
    FileName = .GetFileName(FilePath)
End With
With GetObject(&quot;new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}&quot;)
    .Navigate &quot;::{E17D4FC0-5564-11D1-83F2-00A0C90DC849}&quot;
    While (.Busy): Sleep 1: Wend
    .Document.Application.NameSpace(ParentFolderPath).ParseName(FileName).InvokeVerb(&quot;Properties&quot;)
    .Quit &#039; не обязательно, если окно не делать видимым, оно закроется вместе со скриптом
End With
</code></pre></div></div></div><p>Так же должен быть запущен Проводник, иначе </p><div class="codebox"><pre><code>GetObject(&quot;new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}&quot;)</code></pre></div><p> вызовет ошибку<br /></p><div class="quotebox"><cite>Windows Script Host пишет:</cite><blockquote><p>Ошибка:	Невозможно создание объекта контейнером ActiveX: &#039;GetObject&#039;<br />Код:	800A01AD<br />Источник: 	Ошибка выполнения Microsoft VBScript</p></blockquote></div><p>, т.е. затруднителен запуск от имени другого пользователя. Как помнится на XP SP1 с IE6 было достаточно, чтобы существовало хотя бы одно окно Проводника (возможно, запущенного с ключом /SEPARATE) или IE, но сейчас у меня требуется Проводник запущенный в полном наборе (с Рабочим столом).</p>]]></description>
			<author><![CDATA[null@example.com (wisgest)]]></author>
			<pubDate>Wed, 08 Jul 2015 04:59:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95086#p95086</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95078#p95078</link>
			<description><![CDATA[<p>Сам тестирую на 2-й системе. Никаких проблем. А зачем лишние переделки в коде? IE стоит на последних двух?<br />Есть ещё возможность на время диалог показывать. Например, на 10 сек., если поменять нижний кусок на<br /></p><div class="codebox"><pre><code>With CreateObject(&quot;Shell.Application&quot;)
  Set Verbs = .NameSpace(Folder).ParseName(Name).Verbs
  Verbs.Item(Verbs.Count - 1).DoIt
End With
&#039; или заменить на эту строку (но не для всех локалей):
&#039; CreateObject(&quot;Shell.Application&quot;).NameSpace(Folder).ParseName(Name).InvokeVerb &quot;Properties&quot;
WScript.Sleep 10000</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Tue, 07 Jul 2015 20:41:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95078#p95078</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95077#p95077</link>
			<description><![CDATA[<p>Спс <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />)<br />Код работает как надо. Но только на одном компьютере из трех <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" />(<br /></p><div class="codebox"><pre><code>File = &quot;C:\Program Files\Far\Far.exe&quot;
With CreateObject(&quot;Scripting.FileSystemObject&quot;).GetFile(File)
  Folder = .ParentFolder : Name = .Name
End With

Set wnd = GetObject(&quot;new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}&quot;)
With wnd 
  Set Verbs = .document.Application.NameSpace(Folder).ParseName(Name).Verbs
  Verbs.Item(Verbs.Count - 1).DoIt : .ExecWB 45, 2 : .Quit
End With
</code></pre></div><p>Windows Server 2008 R2 - отработало как и было задумано</p><p>Windows 7 Ultimate SP1 (это критично, на семерках и должно в основном работать, правда есть и машины под XP):<br /></p><div class="codebox"><pre><code>C:\Utils&gt;cscript propert.vbs
Сервер сценариев Windows (Microsoft R) версия 5.8
c Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.

C:\Utils\propert.vbs(6, 1) Ошибка выполнения Microsoft VBScript: Невозможно создание 
объекта контейнером ActiveX: &#039;GetObject&#039;
</code></pre></div><p>Windows Server 2003 R2 (это не критично, но для общей картины):<br /></p><div class="codebox"><pre><code>C:\Temp&gt;cscript test.vbs
Сервер сценариев Windows (Microsoft R) версия 5.6
c Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.

C:\Temp\test.vbs(8, 3) (null): Неопознанная ошибка</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (inock)]]></author>
			<pubDate>Tue, 07 Jul 2015 20:13:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95077#p95077</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95068#p95068</link>
			<description><![CDATA[<div class="codebox"><pre><code>File = &quot;C:\Test.ext&quot;
With CreateObject(&quot;Scripting.FileSystemObject&quot;).GetFile(File)
  Folder = .ParentFolder : Name = .Name
End With
With GetObject(&quot;new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}&quot;)
  Set Verbs = .document.Application.NameSpace(Folder).ParseName(Name).Verbs
  Verbs.Item(Verbs.Count - 1).DoIt : .ExecWB 45, 2 : .Quit
End With</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Tue, 07 Jul 2015 19:10:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95068#p95068</guid>
		</item>
		<item>
			<title><![CDATA[VBS: Как программно вызвать окно свойств (Properties) файла]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=95062#p95062</link>
			<description><![CDATA[<p>Здравствуйте.</p><p>В принципе, этот код имеется в интернете, но для VB (например <a href="http://www.rusedu.info/Article326.html">здесь</a>, но вообще много где). Но вот адаптировать его под VBS моих знаний не хватило. Может быть кто-нибудь, кому не сложно, покажет, как это можно сделать в VBS?</p><p>P.S: Или из коммандной строки, тоже подойдет.</p><p>Спасибо <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (inock)]]></author>
			<pubDate>Tue, 07 Jul 2015 16:29:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=95062#p95062</guid>
		</item>
	</channel>
</rss>
