<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=149894&amp;view=findpost&amp;p=1413531</guid>
        <pubDate>Mon, 15 Jan 2007 10:24:30 +0000</pubDate>
        <title>Как выделить файлы в Проводнике</title>
        <link>https://forum.sources.ru/index.php?showtopic=149894&amp;view=findpost&amp;p=1413531</link>
        <description><![CDATA[joohny: Для возможности выделения и папок предлогаю сделать следующее:<br>
<br>
Вместо<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">{...}</div><div class="code_line">&nbsp;&nbsp;Result := FileExists(Path);</div><div class="code_line">&nbsp;&nbsp;if not Result then Exit;</div><div class="code_line">{...}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
Использовать<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">{...}</div><div class="code_line">&nbsp;&nbsp;Result := FileExists(Path) or DirectoryExists(Path);</div><div class="code_line">&nbsp;&nbsp;if not Result then Exit;</div><div class="code_line">&nbsp;&nbsp;path:=ExcludeTrailingPathDelimiter(path);</div><div class="code_line">{...}</div></ol></div></div></div></div><br>
<br>
Пока не решил проблему с выделением &quot;корня&quot;(C:&#092;,D:&#092;...)<br>
Но я думаю это мало кому понадобится :D]]></description>
        <author>joohny</author>
        <category>Работа с файлами, форматы файлов и данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=149894&amp;view=findpost&amp;p=1197637</guid>
        <pubDate>Mon, 31 Jul 2006 07:05:56 +0000</pubDate>
        <title>Как выделить файлы в Проводнике</title>
        <link>https://forum.sources.ru/index.php?showtopic=149894&amp;view=findpost&amp;p=1197637</link>
        <description><![CDATA[Rouse_: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=149894&view=findpost&p=1196596'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Mechanic &#064; <time class="tag-quote__quoted-time" datetime="2006-07-29T15:13:04+00:00">29.07.06, 15:13</time></span><div class='quote '>Именно это и использовал. Только есть одна досадная вещь в таком вызове: когда папка уже открыта в окне, то позиционирования не происходит. </div></div><br>
Да в принципе путь то нам известен? Известен, посему делаем финт хвостом:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">uses ..., SHDocVw;</div><div class="code_line">&nbsp;</div><div class="code_line">function OpenExplorerAndSelectFile(Path: String): Boolean;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp;function ParceURLName(const Value: String): String;</div><div class="code_line">&nbsp;&nbsp;const</div><div class="code_line">&nbsp;&nbsp; &nbsp;scFilePath: array [0..7] of Char = (&#39;f&#39;, &#39;i&#39;, &#39;l&#39;, &#39;e&#39;, &#39;:&#39;, &#39;/&#39;, &#39;/&#39;, &#39;/&#39;);</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;if CompareMem(@scFilePath[0], @Value[1], 8) then</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Result := Copy(Value, 9, Length(Value));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Result := StringReplace(Result, &#39;/&#39;, &#39;\&#39;, [rfReplaceAll]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Result := StringReplace(Result, &#39;%20&#39;, &#39; &#39;, [rfReplaceAll]);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Result := IncludeTrailingBackslash(Result);</div><div class="code_line">&nbsp;&nbsp; &nbsp;end</div><div class="code_line">&nbsp;&nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Result := Value;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;</div><div class="code_line">var</div><div class="code_line">&nbsp;&nbsp;iShellWindow: IShellWindows;</div><div class="code_line">&nbsp;&nbsp;iWB: IWebBrowserApp;</div><div class="code_line">&nbsp;&nbsp;spDisp: IDispatch;</div><div class="code_line">&nbsp;&nbsp;I: Integer;</div><div class="code_line">&nbsp;&nbsp;S, FilePath, FileName: String;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;Result := FileExists(Path);</div><div class="code_line">&nbsp;&nbsp;if not Result then Exit;</div><div class="code_line">&nbsp;&nbsp;FilePath := AnsiUpperCase(ExtractFilePath(Path));</div><div class="code_line">&nbsp;&nbsp;FileName := ExtractFileName(Path);</div><div class="code_line">&nbsp;&nbsp;iShellWindow := CoShellWindows.Create;</div><div class="code_line">&nbsp;&nbsp;for I := 0 to iShellWindow.Count - 1 do</div><div class="code_line">&nbsp;&nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp;spDisp := iShellWindow.Item(I);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if spDisp = nil then Continue;</div><div class="code_line">&nbsp;&nbsp; &nbsp;spDisp.QueryInterface(IWebBrowserApp, iWB);</div><div class="code_line">&nbsp;&nbsp; &nbsp;if iWB &#60;&#62; nil then</div><div class="code_line">&nbsp;&nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;S := ParceURLName(iWB.LocationURL);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if AnsiUpperCase(S) = FilePath then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;begin</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;SendMessage(iWB.HWnd, WM_SYSCOMMAND, SC_CLOSE, 0);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp; &nbsp;end;</div><div class="code_line">&nbsp;&nbsp;end;</div><div class="code_line">&nbsp;&nbsp;ShellExecute(0, &#39;open&#39;, &#39;explorer.exe&#39;,</div><div class="code_line">&nbsp;&nbsp; &nbsp;PChar(&#39;/select, &#39; + FileName), PChar(FilePath), SW_SHOWNORMAL);</div><div class="code_line">end;</div><div class="code_line">&nbsp;</div><div class="code_line">procedure TForm18.Button4Click(Sender: TObject);</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp;if not OpenExplorerAndSelectFile(&#39;c:\windows\notepad.exe&#39;) then</div><div class="code_line">&nbsp;&nbsp; &nbsp;ShowMessage(&#39;Файл не найден.&#39;);</div><div class="code_line">end;</div></ol></div></div></div></div><br>
<br>
Это проще чем искать по заголовку.]]></description>
        <author>Rouse_</author>
        <category>Работа с файлами, форматы файлов и данных</category>
      </item>
	
      </channel>
      </rss>
	