<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBA Изменение системной даты]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=15846</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=15846&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBA Изменение системной даты».]]></description>
		<lastBuildDate>Tue, 24 Nov 2020 07:56:50 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBA Изменение системной даты]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=143646#p143646</link>
			<description><![CDATA[<p><strong>alexii</strong>, тоже об этом думал. Когда тестировался, выяснил, что мешает только UAC. Пока его не пройдёшь - хоть с привилегиями, хоть без них, доступа на изменение даты нет. Как только прошёл UAC, даже без привилегий спокойно дату меняет. Есть <span class="bbu">ощущение</span>, что в этом случае привилегии играют роль только ограничительных мер после передачи объекта с полными правами в &quot;<span class="bbu">чужие руки</span>&quot;. Т.е когда у нас, как у базового процесса, получен доступ, но мы передаём объект другому процессу и не хотим ему давать полные права.</p>]]></description>
			<author><![CDATA[null@example.com (Xameleon)]]></author>
			<pubDate>Tue, 24 Nov 2020 07:56:50 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=143646#p143646</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA Изменение системной даты]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=143640#p143640</link>
			<description><![CDATA[<p><strong>Xameleon</strong>, для установки даты не нужна привилегия Systemtime?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 24 Nov 2020 01:03:57 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=143640#p143640</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA Изменение системной даты]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=143639#p143639</link>
			<description><![CDATA[<p>Господа, не совсем понял почему эта задача планируется на VBA, если на VBS всё это можно сделать, вроде бы, проще.<br /></p><div class="codebox"><pre><code>
Option Explicit

Dim datCurrentDate

&#039;Проверка UAC
If Not IsElevated() Then
	CreateObject(&quot;Shell.Application&quot;).ShellExecute WSH.FullName, WSH.ScriptFullName,,&quot;runas&quot;
	WSH.Quit
End if

&#039;Запоминаем дату
datCurrentDate = Now

&#039;Сдвигаем дату на 1 день вперёд
SetDateTime(DateAdd(&quot;d&quot;,1,datCurrentDate))

MsgBox &quot;Date added 1 day ! Now it&#039;s [&quot; &amp; Now &amp; &quot;]. Check the tray !&quot;

&#039;Возвращаем дату назад
SetDateTime datCurrentDate

MsgBox &quot;We are back ! :)&quot;

&#039;Функция установки времени
Function SetDateTime([Date])
	With CreateObject(&quot;WbemScripting.SWbemDateTime&quot;)
		.SetVarDate [Date], True
		SetDateTime = CreateObject(&quot;WbemScripting.SWbemLocator&quot;).ConnectServer()_
		.Get(&quot;Win32_OperatingSystem=@&quot;).SetDateTime(.Value)
	End With
End Function

&#039;Функция проверки наличия повышенных прав
Function IsElevated()
    IsElevated = CreateObject(&quot;WbemScripting.SWbemLocator&quot;).ConnectServer()_
	.Get(&quot;StdRegProv&quot;).CheckAccess(&amp;H80000003,&quot;S-1-5-19&quot;,&amp;H1) = 0
End Function
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Xameleon)]]></author>
			<pubDate>Mon, 23 Nov 2020 23:23:21 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=143639#p143639</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA Изменение системной даты]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=143610#p143610</link>
			<description><![CDATA[<div class="quotebox"><cite>golovindmitry пишет:</cite><blockquote><p>т.к. наше приложение &quot;при запуске проверяет системную дату&quot; (слова человека который нам её писал), а RunAsDate - &quot;Эта утилита не изменяет текущую системную дату и время вашего компьютера, а только вводит дату и время, которые вы укажете, в нужное приложение.&quot;.</p></blockquote></div><p>Не так.<br /></p><div class="quotebox"><blockquote><p><strong>How does it work ?</strong></p><p>RunAsDate intercepts the kernel API calls that returns the current date and time (GetSystemTime, GetLocalTime, GetSystemTimeAsFileTime, NtQuerySystemTime, GetSystemTimePreciseAsFileTime), and replaces the current date/time with the date/time that you specify.</p></blockquote></div><p>Вот «проверяет системную дату» — это как правило либо GetSystemTime(), либо GetLocalTime().</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sat, 21 Nov 2020 19:58:45 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=143610#p143610</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA Изменение системной даты]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=143608#p143608</link>
			<description><![CDATA[<p><strong>alexii</strong></p><p>Да, приложение проверяет дату при запуске (минуты хватает), а потом работает без проблем с любой датой, а другие приложения должны работать с нормальной системной датой - дата создания файлов, например, должна быть верной.</p><p>VBA - потому что, в моем представлении, это самый простой вариант, не требующий дополнительного ПО. Ну и простота использования - уж bat-файл или ярлык я сделать смогу.</p><p>По поводу RunAsDate - попробую, но сомнительно, что она поможет, т.к. наше приложение &quot;при запуске проверяет системную дату&quot; (слова человека который нам её писал), а RunAsDate - &quot;Эта утилита не изменяет текущую системную дату и время вашего компьютера, а только вводит дату и время, которые вы укажете, в нужное приложение.&quot;. Отпишусь отдельно, как проверю.</p>]]></description>
			<author><![CDATA[null@example.com (golovindmitry)]]></author>
			<pubDate>Sat, 21 Nov 2020 19:21:18 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=143608#p143608</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBA Изменение системной даты]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=143607#p143607</link>
			<description><![CDATA[<p><strong>golovindmitry</strong>, я правильно понимаю, что нет нужды ожидать завершения работы приложения, а достаточно подождать одну минуту? И почему выбрана категория VBA?!</p><p>Не проще ли Вам будет попробовать использовать сие: <a href="https://www.nirsoft.net/utils/run_as_date.html">RunAsDate - Run a program with the specified date/time</a>?!</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Sat, 21 Nov 2020 19:03:33 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=143607#p143607</guid>
		</item>
		<item>
			<title><![CDATA[VBA Изменение системной даты]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=143606#p143606</link>
			<description><![CDATA[<p>Для запуска старой программы требуется установка нужной системной даты. Собственно разработчик который писал нам эту программу и забросил ее поддержку посоветовал нам этот способ.</p><p>Сейчас действия производятся такие:<br />1) Оператор включает компьютер.<br />2) Меняет системную дату на определенную<br />3) Запускает программу<br />4) Возвращает дату на текущую<br />5) Работает</p><p>Но тут включается человеческий фактор. Либо дата для запуска программы с ошибкой, либо текущая дата с ошибкой, либо забывают вернуть текущую дату.</p><p>Можно ли (в принципе) одним скриптом проделать эту цепочку действий? Я представляю как это должно выглядеть, но написать самостоятельно, к сожалению, такой скрипт не могу.</p><p>Алгоритм (в моем представлении):<br />1) Запомнить системную дату<br />2) Ззменить дату на нужную<br />3) Запустить exe файл<br />4) Подождать минуту (программа должна запустится и проверить дату)<br />5) Вернуть дату</p><p>Прошу помощи! И в любом случае - спасибо!</p>]]></description>
			<author><![CDATA[null@example.com (golovindmitry)]]></author>
			<pubDate>Sat, 21 Nov 2020 17:49:11 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=143606#p143606</guid>
		</item>
	</channel>
</rss>
