<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; WSH: ShellFolderView.SelectItem в Win98 выдает ошибку]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=15412</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=15412&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «WSH: ShellFolderView.SelectItem в Win98 выдает ошибку».]]></description>
		<lastBuildDate>Sat, 06 Jun 2020 20:44:41 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: WSH: ShellFolderView.SelectItem в Win98 выдает ошибку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140041#p140041</link>
			<description><![CDATA[<div class="quotebox"><cite>EgorS пишет:</cite><blockquote><p>Вы его (SelectItem), наверное, попутали с Shell.Open() и Shell.NameSpace()</p></blockquote></div><p>Так и есть, я это сам понял, но не стал удалять ответ, а добавил к нему postscriptum.</p>]]></description>
			<author><![CDATA[null@example.com (wisgest)]]></author>
			<pubDate>Sat, 06 Jun 2020 20:44:41 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140041#p140041</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: ShellFolderView.SelectItem в Win98 выдает ошибку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140038#p140038</link>
			<description><![CDATA[<div class="quotebox"><cite>wisgest пишет:</cite><blockquote><p>Возможно, в ранних версиях ShellFolderView.SelectItem() не воспринимает в качестве аргумента объект типа ShellFolderItem, а требует строку</p></blockquote></div><p>Согласно MSDN метод SelectItem принимает объект типа FolderItem, про передачу в него строк там ничего не сказано.</p><p>Вы его (SelectItem), наверное, попутали с Shell.Open() и Shell.NameSpace(), про которые вы пишите <a href="http://forum.script-coding.com/viewtopic.php?pid=13987#p13987">тут</a></p><div class="quotebox"><blockquote><p>Оказывается, Shell.Open() и Shell.NameSpace() могут принимать в качестве аргумента не только строку (путь папки) или число, определяющее специальную папку, но и объекты Folder и FolderItem!</p></blockquote></div><p>Между тем, все в тех же святых скрижалях MSDN :) в описании Shell.Open() допустимыми аргументами для него заявлены только: строка (путь к папке), либо значения констант специальных папок (в MS это называют ShellSpecialFolderConstants), про возможность передачи туда объектов типа Folder, FolderItem там ничего не сказано. В реальности это, правда, работает, но опять-таки — только на WinMe/XP, но не Win98. Я специально проверил там Shell.Open() (Shell.NameSpace() не проверял, неохота уже), так вот: при передаче в него папки как объекта FolderItem вылазит ошибка &quot;папка перемещена или удалена&quot;, а при передаче папки как объекта Folder — просто ничего не происходит. В Win98 Shell.Open() работает только если передавать туда строку.</p>]]></description>
			<author><![CDATA[null@example.com (EgorS)]]></author>
			<pubDate>Sat, 06 Jun 2020 18:21:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140038#p140038</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: ShellFolderView.SelectItem в Win98 выдает ошибку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140005#p140005</link>
			<description><![CDATA[<p>Дело, как я понимаю, в версии не WSH, а, скорее, shell32.dll…</p><p>Возможно, в ранних версиях <em>ShellFolderView.SelectItem()</em> не воспринимает в качестве аргумента объект типа <em>ShellFolderItem</em>, а требует строку (то ли это должен быть полный путь к файлу, то ли только его имя).<br />Но со строкой это не будет работать с папками, не являющимися каталогами файловой системы.</p><p>P.S. Хотя, что-то я сомнительное написал. Вероятно что-то другое.</p>]]></description>
			<author><![CDATA[null@example.com (wisgest)]]></author>
			<pubDate>Thu, 04 Jun 2020 20:40:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140005#p140005</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: ShellFolderView.SelectItem в Win98 выдает ошибку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=139961#p139961</link>
			<description><![CDATA[<p><strong>EgorS</strong>, вы полагаете, что в 2020 году кому-то интересно разбираться почему что-то глючит на win98????:o</p>]]></description>
			<author><![CDATA[null@example.com (Malcev)]]></author>
			<pubDate>Wed, 03 Jun 2020 17:21:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=139961#p139961</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: ShellFolderView.SelectItem в Win98 выдает ошибку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=139960#p139960</link>
			<description><![CDATA[<p>Да, стоит Script Host последней возможной для Win98 версии 5.6. Это Win98SE + Internet Explorer 6 (установка IE6 обновляет многие компоненты, в том числе и WSH).</p><p>А насчёт виртуалки с Win98, хм... а что, это такая невыполнимая задача?! Я же вот поставил, хотя я ни разу не программист и к компам вообще по работе никакого отношения не имею. У меня это заняло где-то минут 40...</p>]]></description>
			<author><![CDATA[null@example.com (EgorS)]]></author>
			<pubDate>Wed, 03 Jun 2020 17:07:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=139960#p139960</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH: ShellFolderView.SelectItem в Win98 выдает ошибку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=139916#p139916</link>
			<description><![CDATA[<p><strong>EgorS</strong>, увы, навряд ли кто будет ставить Windows 98 даже на виртуалку, чтобы проверить неработающий под данной ОС скрипт. Вы сам Windows Script Host под Windows 98 до версии 5.6 обновили?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 02 Jun 2020 17:04:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=139916#p139916</guid>
		</item>
		<item>
			<title><![CDATA[WSH: ShellFolderView.SelectItem в Win98 выдает ошибку]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=139902#p139902</link>
			<description><![CDATA[<p>Здравствуйте! Помогите разобраться с непонятками.</p><p>Предыстория такая (это просто для полноты картины, к делу не относится).</p><p>Тут на форуме есть <a href="http://forum.script-coding.com/viewtopic.php?id=2228">топик</a> про скрипт для опции контекстного меню ярлыков в Проводнике (.LNK-файлы), чтобы переходить в папку, где лежит целевой файл ярлыка. Я долго пользовался этим скриптом, но недавно оказалось, что на Win98 он не работает. Я попросил автора адаптировать скрипт под Win98, но моя просьба не встретила отклика, поэтому мне пришлось взять дело в свои хилые ручонки.</p><p><strong>Суть проблемы.</strong></p><p>В <strong>Win98</strong> метод <strong>ShellFolderView.<span style="color: brown">SelectItem</span></strong> почему-то выдает &quot;неопознанная ошибка&quot;, хотя на WinMe/XP работает нормально. При этом в MSDN сказано, что метод SelectItem поддерживается, начиная с Win98 (или Win95 + IE4), так что непонятно, почему оно не работает.</p><p>Пример</p><div class="codebox"><pre><code>// Будем работать с файлом C:\TEST\DIR1\FILE.TXT
// (подразумевается, что этот файл на диске есть)

var Shell;
var ShellWindows;
var FolderView;
var pathToOpen;
var fileAsFoIT;

pathToOpen = &quot;C:\\TEST\\DIR1&quot;;

Shell = WScript.CreateObject(&quot;Shell.Application&quot;);
ShellWindows = Shell.Windows();

// берем наш файл как объект FolderItem
fileAsFoIT = Shell.NameSpace(pathToOpen).ParseName(&quot;FILE.TXT&quot;);
Shell.Open(pathToOpen); // открываем нашу папку

// подождем 2 секунды (просто чтобы быть уверенным,
// что наша папка успела открыться)
WScript.Sleep(2000);

FolderView = ShellWindows.Item().Document;

// выделяем наш файл в только что открытой папке
//
// **************************************************
// в WinMe/XP это работает как надо -- выделяет файл,
// но в Win98 почему-то вылазит &quot;неопознанная ошибка&quot;
// **************************************************
//
FolderView.SelectItem(fileAsFoIT, 1|4|8|16);</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (EgorS)]]></author>
			<pubDate>Tue, 02 Jun 2020 11:51:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=139902#p139902</guid>
		</item>
	</channel>
</rss>
