<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS: Проверка открыт файл или нет]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=9385</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9385&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS: Проверка открыт файл или нет».]]></description>
		<lastBuildDate>Mon, 24 Mar 2014 22:32:12 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS: Проверка открыт файл или нет]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81184#p81184</link>
			<description><![CDATA[<p>ИМО, лучше узнавать текущий запуск через WQL-запрос:<br /></p><div class="codebox"><pre><code>Select ExecutablePath FROM Win32_Process WHERE CommandLine Like &#039;%Буква диска:\\Путь\\к\\файлу%&#039;</code></pre></div><p><strong>wildwolf007</strong><br />Чтобы не было лишних вопросов:</p><div class="codebox"><pre><code>Path = &quot;X:\\Файл.ext&quot;
Set WMI = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2&quot;)
For Each F in WMI.ExecQuery(&quot;SELECT ExecutablePath FROM Win32_Process WHERE CommandLine Like &#039;%&quot; &amp; Path &amp; &quot;%&#039;&quot;)
  MsgBox &quot;Файл открыт приложением: &quot; &amp; vbNewLine &amp; F.ExecutablePath, 64, Space(13) &amp; &quot;Проверка запуска файла&quot;
Next : Set WMI = Nothing</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Mon, 24 Mar 2014 22:32:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81184#p81184</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Проверка открыт файл или нет]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81183#p81183</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>…если открытый файл находится на USB накопителе или в &quot;простонародии&quot; на флешке, то данный метод нельзя применять.</p></blockquote></div><p>У меня работает.<br />Возможно, причина в<br />1) используемом накопителе (способе его подключения, драйвере…) или<br />2) программа, открывающая файл, не блокирует его, если он находится на съёмном носителе.</p><p>Для проверки, действительно ли заблокирован файл попробуйте ввести в командной строке<br /></p><div class="codebox"><pre><code>rem:&gt;&gt;&quot;G:\1234.rtf&quot;</code></pre></div><p> или </p><div class="codebox"><pre><code>set /p=&lt;nul&gt;&gt;&quot;G:\1234.rtf&quot;</code></pre></div><p>— должно ответить<br /></p><div class="quotebox"><blockquote><p>Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.</p></blockquote></div><p>или просто попробуйте изменить файл в Блокноте…</p><p>Чтобы самому заблокировать файл введите в командной строке<br /></p><div class="codebox"><pre><code>(pause&gt;con)&gt;&gt;&quot;G:\1234.rtf&quot;</code></pre></div><p>— файл будет заблокирован на время паузы.</p>]]></description>
			<author><![CDATA[null@example.com (wisgest)]]></author>
			<pubDate>Mon, 24 Mar 2014 21:31:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81183#p81183</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Проверка открыт файл или нет]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81181#p81181</link>
			<description><![CDATA[<p>Небольшое уточнение если открытый файл находится на USB накопителе или в &quot;простонародии&quot; на флешке, то данный метод нельзя применять.&nbsp; Промучился около часа не мог понять на локальном жестком диске работает, а на USB нет. На USB показывает, что нет ошибки.</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Mon, 24 Mar 2014 17:50:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81181#p81181</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Проверка открыт файл или нет]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81179#p81179</link>
			<description><![CDATA[<p>Спасибо помогло.</p><p>Теперь пишет разрешение отклонено.</p><br /><div class="codebox"><pre><code>


Dim  objFso
Set objFso = CreateObject(&quot;Scripting.FileSystemObject&quot;) 

MsgBox &quot;Код ошибки до Err.Number = &quot; &amp;Err.Number

On Error Resume Next

Dim OpenFileBuzyCheck
Set OpenFileBuzyCheck = objFso.OpenTextFile(&quot;C:\12345671.rtf&quot;, 8, True)


MsgBox &quot;Err.Number = После открытия на дозапись = &quot; &amp;Err.Number
MsgBox &quot;err.description&quot; &amp;err.description
If Err.Number &gt; 0 Then
    MsgBox &quot;Файл занят&quot; &amp;&quot;Err.Number = &quot; &amp;Err.Number
    MsgBox &quot;Сработало условие Err.Number = &quot; &amp;Err.Number
End IF
Err.Clear
MsgBox &quot;Err.Number = Проверка кода ошибки после чистки &quot; &amp;Err.Number

OpenFileBuzyCheck.Close

On Error Goto 0


</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Mon, 24 Mar 2014 17:19:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81179#p81179</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Проверка открыт файл или нет]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81178#p81178</link>
			<description><![CDATA[<div class="quotebox"><cite>wildwolf007 пишет:</cite><blockquote><p>Пишет: &quot;Требуется объект&quot;.</p></blockquote></div><p>Возможно, что ошибку проверять надо до закрытия файла?</p>]]></description>
			<author><![CDATA[null@example.com (Rom5)]]></author>
			<pubDate>Mon, 24 Mar 2014 15:15:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81178#p81178</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Проверка открыт файл или нет]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81165#p81165</link>
			<description><![CDATA[<p>Пишет: &quot;Требуется объект&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Mon, 24 Mar 2014 10:31:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81165#p81165</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Проверка открыт файл или нет]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81154#p81154</link>
			<description><![CDATA[<p>А что говорит err.description?</p>]]></description>
			<author><![CDATA[null@example.com (shiz)]]></author>
			<pubDate>Sun, 23 Mar 2014 20:28:52 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81154#p81154</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Проверка открыт файл или нет]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=81148#p81148</link>
			<description><![CDATA[<p>Выдает ошибку 424 может что-то не так сделал?</p><br /><div class="codebox"><pre><code>

Dim  objFso
Set objFso = CreateObject(&quot;Scripting.FileSystemObject&quot;) 

MsgBox &quot;Код ошибки до Err.Number = &quot; &amp;Err.Number

On Error Resume Next

Dim OpenFileBuzyCheck
Set OpenFileBuzyCheck = objFso.OpenTextFile(&quot;C:\12345671.rtf&quot;, 8, True)
OpenFileBuzyCheck.Close

MsgBox &quot;Err.Number = После открытия на дозапись = &quot; &amp;Err.Number

If Err.Number &gt; 0 Then
    MsgBox &quot;Файл занят&quot; &amp;&quot;Err.Number = &quot; &amp;Err.Number
    MsgBox &quot;Сработало условие Err.Number = &quot; &amp;Err.Number
End IF
Err.Clear
MsgBox &quot;Err.Number = Проверка кода ошибки после чистки &quot; &amp;Err.Number
On Error Goto 0

</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Sun, 23 Mar 2014 14:09:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=81148#p81148</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Проверка открыт файл или нет]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=80988#p80988</link>
			<description><![CDATA[<div class="quotebox"><cite>wildwolf007 пишет:</cite><blockquote><p>А если файл будет EXE ?</p></blockquote></div><p>В чём разница? Проверка работает (код ошибки 70, если файл занят).</p>]]></description>
			<author><![CDATA[null@example.com (shiz)]]></author>
			<pubDate>Wed, 19 Mar 2014 12:31:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=80988#p80988</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Проверка открыт файл или нет]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=80987#p80987</link>
			<description><![CDATA[<p>А если файл будет EXE ? Чето не оч вариант.</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Wed, 19 Mar 2014 11:53:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=80987#p80987</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS: Проверка открыт файл или нет]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=80985#p80985</link>
			<description><![CDATA[<p>Попробовать открыть файл на дозапись.</p>]]></description>
			<author><![CDATA[null@example.com (shiz)]]></author>
			<pubDate>Wed, 19 Mar 2014 11:00:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=80985#p80985</guid>
		</item>
		<item>
			<title><![CDATA[VBS: Проверка открыт файл или нет]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=80982#p80982</link>
			<description><![CDATA[<p>Как можно проверить открыт файл или нет? <br />Была идея переименовать файл в свое же имя и считать код ошибки, но чето выдает ошибку 58.</p><p>К тому же в Windows 7 на примере Doc, можно переименовать открытые файлы Office 2010. <br />Открываем файл doc в ворде и переименовываем файл и все проходит корректно, только когда потом пытаешься произвести сохранение документа ворд говорит &quot;Убедитесь, что задвижка дисковода закрыта и он содержит правильный диск &quot;</p><p>Кто что-нибудь может подсказать?</p><div class="codebox"><pre><code>

MsgBox File.Name
MsgBox &quot;Err.Number = &quot; &amp;Err.Number
On Error Resume Next
File.Name = File.Name
MsgBox &quot;Err.Number = &quot; &amp;Err.Number
On Error Goto 0

</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Wed, 19 Mar 2014 09:36:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=80982#p80982</guid>
		</item>
	</channel>
</rss>
