<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBA: "Тихая" печать их MS Excel]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=14047&amp;type=atom" />
	<updated>2018-08-17T13:04:47Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=14047</id>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128060#p128060" />
			<content type="html"><![CDATA[<p>Если последнее предположение верное, и приложение запускается, как Вы писали, пакетным файлом, давайте попробуем заменить его, например, на скрипт, который будет получать имя принтера по умолчанию текущего пользователя, исполняющего скрипт, где-нибудь его сохранять, а код в Рабочей книге, открытой в Microsoft Excel, исполняющейся уже в контексте другого пользователя, будет пытаться устанавливать тот же принтер по умолчанию, что и у вызвавшего скрипт пользователя.</p><p>Что скажете? Если готовы — для начала проверьте у себя работоспособность <a href="http://forum.script-coding.com/viewtopic.php?pid=128055#p128055">этого кода</a>. А то, ежели мои предположения не верны, то и затеваться не стоит.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-08-17T13:04:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128060#p128060</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128059#p128059" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ospts пишет:</cite><blockquote><p>По логике да, но в реальности происходит другое. В диспетчере задач для видимого и невидимого Excel пользователи разные.</p></blockquote></div><p>Я уже писал про «после — не значит вследствие». Точно так же и здесь: что пользователи разные, говорит лишь о том, что процесс приложения исполняется под разными учётными записями. Видимость/невидимость окна приложения тут не играет роли.</p><div class="quotebox"><cite>ospts пишет:</cite><blockquote><p>Ну если бы один пользователь печатал бы эти формы, но печатать может любой, кому поручат. А у нас их около 50 человек.</p></blockquote></div><p>И каждый на своей машине, со своим умолчальным принтером — Вы это хотите сказать?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-08-17T12:49:36Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128059#p128059</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128056#p128056" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>В моём понимании нет никакой зависимости между видимостью окна приложения и запуском от имени другой учётной записи.</p></blockquote></div><p>По логике да, но в реальности происходит другое. В диспетчере задач для видимого и невидимого Excel пользователи разные.<br /></p><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Если знаете имя потребного принтера — вставьте в книгу следующий код:</p></blockquote></div><p>Ну если бы один пользователь печатал бы эти формы, но печатать может любой, кому поручат. А у нас их около 50 человек.<br />Вот если бы как-то вытащить принтер по умолчанию для каждого пользователя, тогда можно было бы использовать этот код.</p>]]></content>
			<author>
				<name><![CDATA[ospts]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=39450</uri>
			</author>
			<updated>2018-08-17T11:37:34Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128056#p128056</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128055#p128055" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ospts пишет:</cite><blockquote><p>А что вам непонятно?</p></blockquote></div><p>В моём понимании нет никакой зависимости между видимостью окна приложения и запуском от имени другой учётной записи.</p><div class="quotebox"><cite>ospts пишет:</cite><blockquote><p>Я уже проверял и знаю, что для этого пользователя стоит по умолчанию другой принтер.</p></blockquote></div><p>Хорошо. Если знаете имя потребного принтера — вставьте в книгу следующий код:<br /></p><div class="codebox"><pre><code>    Dim objSWbemObjectEx As Object

    For Each objSWbemObjectEx In CreateObject(&quot;WbemScripting.SWbemLocator&quot;).ConnectServer(&quot;.&quot;, &quot;root\cimv2&quot;).ExecQuery(&quot;SELECT * FROM Win32_Printer&quot;)
        If StrComp(objSWbemObjectEx.Name, &quot;Microsoft XPS Document Writer&quot;, vbTextCompare) = 0 And Not objSWbemObjectEx.Default Then
            objSWbemObjectEx.SetDefaultPrinter
        End If
    Next
</code></pre></div><p>где вместо «Microsoft XPS Document Writer» вставьте имя искомого принтера, и сделайте так, чтобы он выполнился под той учётной записью хотя бы один раз (затем можно удалить или оставить на будущее).</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-08-17T10:53:46Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128055#p128055</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128054#p128054" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><div class="quotebox"><cite>ospts пишет:</cite><blockquote><p>Буду запускать Excel видимым (в этом случае он запускается от текущего пользователя),</p></blockquote></div><p>Мы явно говорим на разных языках.</p></blockquote></div><p>А что вам непонятно?</p><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Прокомментируйте — присутствует ли искомый принтер в списке, назначен ли именно он принтером по умолчанию?</p></blockquote></div><p>Я уже проверял и знаю, что для этого пользователя стоит по умолчанию другой принтер. Но, как я понял, он зависит от изменения принтера по умолчанию под текущей учёткой. Если я его меняю, то меняется и на той, но только через какое-то время, не сразу, и я не пойму почему. Это может есть в каких-то настройках самой винды, типа какой-то синхронизации для пользователей или чего-то подобного...</p>]]></content>
			<author>
				<name><![CDATA[ospts]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=39450</uri>
			</author>
			<updated>2018-08-17T09:26:46Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128054#p128054</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128053#p128053" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ospts пишет:</cite><blockquote><p>Буду запускать Excel видимым (в этом случае он запускается от текущего пользователя),</p></blockquote></div><p>Мы явно говорим на разных языках.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-08-17T08:54:46Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128053#p128053</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128052#p128052" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ospts пишет:</cite><blockquote><p>До 10-ки программа 5 лет работала на Win7 и таких проблем не было. Так что дело всё-таки с 10-кой.</p></blockquote></div><p>После — не значит вследствие.</p><p>Рассказываю: был один принтер, он же был принтером по умолчанию. Добавили другой/подключили сетевой. Назначили его умолчальным. Под той учётной записью, которая была активна в тот момент. У всех остальных учётных записей умолчальным остался прежний. Могут быть и другие сценарии, приводящие к указанной ситуации.</p><div class="quotebox"><cite>ospts пишет:</cite><blockquote><p>На скриншоте же видно, что за прога - Стек. Прога написана на Java, поэтому сначала запускается Java, которая запускает саму прогу.</p></blockquote></div><p>На скриншоте виден исполняемый файл с именем stack.exe. javaw.exe не видно.</p><p>Ну, да ладно. Имя Вашего принтера знаете, нет? Откройте Вашу Рабочую книгу, добавьте код:<br /></p><div class="codebox"><pre><code>    Dim objSWbemObjectEx As Object
    Dim strOutput As String
    
    
    strOutput = &quot;Default&quot; &amp; vbTab &amp; &quot;Printer Name&quot; &amp; vbCrLf &amp; &quot;-------------------------------------------&quot; &amp; vbCrLf
    
    For Each objSWbemObjectEx In CreateObject(&quot;WbemScripting.SWbemLocator&quot;).ConnectServer(&quot;.&quot;, &quot;root\cimv2&quot;).ExecQuery(&quot;SELECT * FROM Win32_Printer&quot;)
        strOutput = strOutput &amp; objSWbemObjectEx.Default &amp; vbTab &amp; objSWbemObjectEx.Name &amp; vbCrLf
    Next
    
    MsgBox strOutput
</code></pre></div><p>в Ваш макрос, сохраните книгу. Выполните программу. Посмотрите на появившееся сообщение вида:<br /><span class="postimg"><img src="https://i.imgur.com/huPbIPR.png" alt="https://i.imgur.com/huPbIPR.png" /></span><br />Скопируйте его содержимое посредством Ctrl-C. Вставьте сюда. Прокомментируйте — присутствует ли искомый принтер в списке, назначен ли именно он принтером по умолчанию?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-08-17T08:53:29Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128052#p128052</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128051#p128051" />
			<content type="html"><![CDATA[<p>В общем, пока вы думали, я нашёл другое решение, которое более удовлетворительное, чем то временное, о котором я писал ранее.<br />Буду запускать Excel видимым (в этом случае он запускается от текущего пользователя), потом форма отправляется на печать и excel закрывается через секунду, это всё через макрос. Будет конечно мерцать excel, но зато будет виден сам процесс работы)</p><p>Так что спасибо, что пытались помочь мне!</p>]]></content>
			<author>
				<name><![CDATA[ospts]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=39450</uri>
			</author>
			<updated>2018-08-17T08:43:35Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128051#p128051</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128050#p128050" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Я пока не вижу ничего, что было бы связано с версией ОС. Аналогичная ситуация может быть на любой ОС, начиная с Windows NT.</p><p>Вы не показали и не ответили на:<br /></p><div class="quotebox"><cite>ospts пишет:</cite><blockquote><p>что за приложение, её версию, как именно Вы осуществляете её запуск на исполнение.</p></blockquote></div></blockquote></div><p>До 10-ки программа 5 лет работала на Win7 и таких проблем не было. Так что дело всё-таки с 10-кой. <br />На скриншоте же видно, что за прога - Стек. Прога написана на Java, поэтому сначала запускается Java, которая запускает саму прогу. Это делается через батник.<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"><p>start jre1.6.0_07\bin\javaw.exe -Xmx512m -jar JavaStackClient.jar</p></div></div>]]></content>
			<author>
				<name><![CDATA[ospts]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=39450</uri>
			</author>
			<updated>2018-08-17T08:02:26Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128050#p128050</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128049#p128049" />
			<content type="html"><![CDATA[<p>Я пока не вижу ничего, что было бы связано с версией ОС. Аналогичная ситуация может быть на любой ОС, начиная с Windows NT.</p><p>Вы не показали и не ответили на:<br /></p><div class="quotebox"><cite>ospts пишет:</cite><blockquote><p>что за приложение, её версию, как именно Вы осуществляете её запуск на исполнение.</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-08-17T07:55:23Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128049#p128049</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128048#p128048" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><div class="quotebox"><cite>ospts пишет:</cite><blockquote><p> и при запуске она не требует пароль.</p></blockquote></div><p>Тогда давайте описывайте — что за приложение, её версию, как именно Вы осуществляете её запуск на исполнение. Покажите скриншот Process Explorer&#039;а со включённым столбцом «User Name», на котором будут видны имена текущего пользователя и пользователя, от имени которого исполняется приложение (можете попробовать сделать скриншот в момент печати, чтобы был виден и excel.exe).</p></blockquote></div><p><a href="https://pastenow.ru/43e1379d72e77f8af9126a793480369d">https://pastenow.ru/43e1379d72e77f8af9126a793480369d</a><br />Вот. Только я что-то сомневаюсь, что это поможет решить проблему. Дело же не в приложении, а скорее в Win10</p>]]></content>
			<author>
				<name><![CDATA[ospts]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=39450</uri>
			</author>
			<updated>2018-08-17T07:15:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128048#p128048</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128047#p128047" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ospts пишет:</cite><blockquote><p> и при запуске она не требует пароль.</p></blockquote></div><p>Тогда давайте описывайте — что за приложение, её версию, как именно Вы осуществляете её запуск на исполнение. Покажите скриншот Process Explorer&#039;а со включённым столбцом «User Name», на котором будут видны имена текущего пользователя и пользователя, от имени которого исполняется приложение (можете попробовать сделать скриншот в момент печати, чтобы был виден и excel.exe).</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-08-17T06:42:51Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128047#p128047</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128046#p128046" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Почему не можете — для неё отключён интерактивный вход? Можете временно включить. Не знаете пароль? Но как-то же Вы ту стороннюю программу запускаете от имени этой учётной записи, не так ли?</p></blockquote></div><p>Вот именно, что не знаю. Программа при установке сама создаёт пользователя,видимо вместе с паролем, и при запуске она не требует пароль. Возможно она сама как-то его ставит... не знаю.</p>]]></content>
			<author>
				<name><![CDATA[ospts]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=39450</uri>
			</author>
			<updated>2018-08-17T06:15:34Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128046#p128046</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128045#p128045" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ospts пишет:</cite><blockquote><p>Я не могу интерактивно на неё зайти.</p></blockquote></div><p>Почему не можете — для неё отключён интерактивный вход? Можете временно включить. Не знаете пароль? Но как-то же Вы ту стороннюю программу запускаете от имени этой учётной записи, не так ли?</p><div class="quotebox"><cite>ospts пишет:</cite><blockquote><p>А как это сделать, подскажите</p></blockquote></div><p>Для начала нужно как раз войти под той учётной записью и глазками посмотреть в Панели управления, какой принтер задан умолчальным для этой учётной записи. Если — «никак, совсем никак» — я буду смотреть, можно ли получить сие программным способом.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2018-08-17T05:58:48Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128045#p128045</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBA: "Тихая" печать их MS Excel]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=128044#p128044" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>И что?</p></blockquote></div><p>Я не могу интерактивно на неё зайти.<br /></p><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Предлагаю проверить принтер по умолчанию под указанной учётной записью. Затем предлагаю открыть книгу и проверить принтер ручками. Программно устанавливать — пока нет, это последнее средство.</p></blockquote></div><p>А как это сделать, подскажите</p>]]></content>
			<author>
				<name><![CDATA[ospts]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=39450</uri>
			</author>
			<updated>2018-08-17T05:24:39Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=128044#p128044</id>
		</entry>
</feed>
