<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: FileSetTime]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=14808&amp;type=atom" />
	<updated>2019-06-05T08:07:19Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=14808</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134624#p134624" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>dmitry-semin пишет:</cite><blockquote><p>Хотелось решить вопрос штатными командами.</p></blockquote></div><p>Не получится.<br /></p><div class="codebox"><pre><code>FilePath := &quot;test.txt&quot;
timetoset := 20180615151525
SetFileTime(FilePath, timetoset, &quot;M&quot;)
SetFileTime(FilePath, timetoset, &quot;C&quot;)
SetFileTime(FilePath, timetoset, &quot;A&quot;)
return

; ======================================================================================================================
; SetFileTime
;     -&gt; docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-setfiletime
; TzSpecificLocalTimeToSystemTime
;     -&gt; docs.microsoft.com/en-us/windows/desktop/api/timezoneapi/nf-timezoneapi-tzspecificlocaltimetosystemtime
; SystemTimeToFileTime
;     -&gt; docs.microsoft.com/en-us/windows/desktop/api/timezoneapi/nf-timezoneapi-systemtimetofiletime
; CreateFile
;     -&gt; docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-createfilea
;     FILE_WRITE_ATTRIBUTES 0x0100
;     FILE_SHARE_READ       0x01 +
;     FILE_SHARE_WRITE      0x02 +- 0X07
;     FILE_SHARE_DELETE     0x04 +
;     OPEN_EXISTING         3
;     FILE_ATTRIBUTE_NORMAL 0x80
; ======================================================================================================================
SetFileTime(FilePath, TimeStamp, Type := &quot;M&quot;) {
   If !TimeStamp2SystemTime(TimeStamp, LocalTime)
      Return False
   If !(Handle := DllCall(&quot;CreateFile&quot;, &quot;Str&quot;, FilePath, &quot;UInt&quot;, 0x0100, &quot;UInt&quot;, 0x07, &quot;Ptr&quot;, 0
                                      , &quot;UInt&quot;, 3, &quot;UInt&quot;, 0x80, &quot;Ptr&quot;, 0, &quot;UPtr&quot;))
      Return False
   ; Aktuelle Daten einlesen
   VarSetCapacity(CTime, 16, 0)
   VarSetCapacity(ATime, 16, 0)
   VarSetCapacity(MTime, 16, 0)
   If !DllCall(&quot;GetFileTime&quot;, &quot;Ptr&quot;, Handle, &quot;Ptr&quot;, &amp;CTime, &quot;Ptr&quot;, &amp;ATime, &quot;Ptr&quot;, &amp;MTime, &quot;UInt&quot;) {
      DllCall(&quot;CloseHandle&quot;, &quot;Ptr&quot;, Handle, &quot;UInt&quot;)
      Return False
   }
   ; Geändertes Datum schreiben
   VarSetCapacity(SystemTime, 16, 0)
   DllCall(&quot;TzSpecificLocalTimeToSystemTime&quot;, &quot;Ptr&quot;, 0, &quot;Ptr&quot;, &amp;LocalTime, &quot;Ptr&quot;, &amp;SystemTime, &quot;UInt&quot;)
   VarSetCapacity(FileTime, 8, 0)
   DllCall(&quot;SystemTimeToFileTime&quot;, &quot;Ptr&quot;, &amp;SystemTime, &quot;Ptr&quot;, &amp;FileTime, &quot;UInt&quot;)
   PCT := Type = &quot;C&quot; ? &amp;FileTime : &amp;CTime
   PAT := Type = &quot;A&quot; ? &amp;FileTime : &amp;ATime
   PMT := Type = &quot;M&quot; ? &amp;FileTime : &amp;MTime
   Result := DllCall(&quot;SetFileTime&quot;, &quot;Ptr&quot;, Handle, &quot;Ptr&quot;, PCT, &quot;Ptr&quot;, PAT, &quot;Ptr&quot;, PMT, &quot;UInt&quot;)
   DllCall(&quot;CloseHandle&quot;, &quot;Ptr&quot;, Handle, &quot;UInt&quot;)
   Return Result
}
; ======================================================================================================================
; TimeStamp = YYYYMMDDHH24MISS (autohotkey.com/docs/commands/FileSetTime.htm#YYYYMMDD)
; SystemTime -&gt; msdn.microsoft.com/en-us/f77cdf86-0f97-4a89-b565-95b46fa7d65b
; ======================================================================================================================
TimeStamp2SystemTime(TimeStamp, ByRef SystemTime) {
   VarSetCapacity(SystemTime, 16, 0)
   TimeStamp += 0, S
   If (TimeStamp = &quot;&quot;)
      Return False
   NumPut(SubStr(TimeStamp,  1, 4), SystemTime,  0, &quot;UShort&quot;)
   NumPut(SubStr(TimeStamp,  5, 2), SystemTime,  2, &quot;UShort&quot;)
   NumPut(SubStr(TimeStamp,  7, 2), SystemTime,  6, &quot;UShort&quot;)
   NumPut(SubStr(TimeStamp,  9, 2), SystemTime,  8, &quot;UShort&quot;)
   NumPut(SubStr(TimeStamp, 11, 2), SystemTime, 10, &quot;UShort&quot;)
   NumPut(SubStr(TimeStamp, 13, 2), SystemTime, 12, &quot;UShort&quot;)
   Return True
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2019-06-05T08:07:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134624#p134624</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134623#p134623" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Не думаю.</p></blockquote></div><p>Да в этом коде была ошибка<br /></p><div class="codebox"><pre><code>
if (YYYY &lt;= 2014)
   if (MM &lt;= 10)
		if (DD  &lt;= 26)
         {
         HH24 := HH24 - 1
         }
</code></pre></div><p>Условием должен быть день, а не час.</p><p>у меня переломной датой&nbsp; (когда скрипт начинает работать нормально) на компе является 14.10.2014, что внезапно совпадает с ред. от 21.07.2014 ФЗ от 03.06.2011 N 107-ФЗ &quot;Об исчислении времени&quot;, которая начинает действовать с 26.10.2014 (в 2 часа 00 минут).</p><p>К сожалению я юрист, а не программист, поэтому из указанноно ниже кода не смог понять практически ничего:(<br /></p><div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p><a href="https://www.autohotkey.com/boards/viewtopic.php?t=64093&amp;p=274648#p274645">https://www.autohotkey.com/boards/viewt … 48#p274645</a></p></blockquote></div><p>увы раздел external libraries в документации для меня пока темный лес.<br />Хотелось решить вопрос штатными командами.</p>]]></content>
			<author>
				<name><![CDATA[dmitry-semin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39549</uri>
			</author>
			<updated>2019-06-05T02:31:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134623#p134623</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134621#p134621" />
			<content type="html"><![CDATA[<p>Так время же неправильно отображается не у пользователя с другим часовым поясом, а на одном и том же компьютере, где часовой пояс не меняли после установки.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2019-06-04T12:16:02Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134621#p134621</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134620#p134620" />
			<content type="html"><![CDATA[<p>P.S. можете сейчас проверить. Устанавливаем время файлу, и после меняем часовой пояс.<br /></p><div class="codebox"><pre><code>FileSetTime,  20050505042000,% A_Desktop &quot;\1.exe&quot;,M
FileSetTime,  20050505042000,% A_Desktop &quot;\1.exe&quot;,C
FileSetTime,  20050505042000,% A_Desktop &quot;\1.exe&quot;,A</code></pre></div>]]></content>
			<author>
				<name><![CDATA[MandarinKa02]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34409</uri>
			</author>
			<updated>2019-06-04T12:10:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134620#p134620</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134619#p134619" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>в смысле, в ноябре 2011 часовой пояс на месяц сменился, а потом опять вернулся обратно? И разве не у вас не то время ставится командой FileSetTime, которое вы указываете?</p></blockquote></div><p>Я не об этом. Однажды, я задал время создания/изменения файла через FileSetTime, скинул этот файл другому человеку и заметил, что время не совпадает, а именно - ушло на час назад. Спустя несколько минут размышлений проверил часовой пояс на удаленном компьютере и заметил, что там часовой пояс, соответственно, на 1 час меньше(или больше) чем у меня.</p>]]></content>
			<author>
				<name><![CDATA[MandarinKa02]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34409</uri>
			</author>
			<updated>2019-06-04T12:06:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134619#p134619</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134595#p134595" />
			<content type="html"><![CDATA[<p>Да, так корректно выставляет.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2019-05-31T18:29:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134595#p134595</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134594#p134594" />
			<content type="html"><![CDATA[<p>Не знаю. У меня с рижским временем во все.<br />На оф.форуме решения вроде как написали:<br /><a href="https://www.autohotkey.com/boards/viewtopic.php?t=64093&amp;p=274648#p274645">https://www.autohotkey.com/boards/viewt … 48#p274645</a><br /><a href="https://www.autohotkey.com/boards/viewtopic.php?f=9&amp;t=59626&amp;start=20#p253083">https://www.autohotkey.com/boards/viewt … 20#p253083</a></p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2019-05-31T18:13:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134594#p134594</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134593#p134593" />
			<content type="html"><![CDATA[<p>Я так и предполагал, что есть связь с переходом на зимнее/летнее время. Непонятно только, почему эта ошибка не во все года проявляется.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2019-05-31T18:09:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134593#p134593</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134592#p134592" />
			<content type="html"><![CDATA[<p>Дело не в 2011 году и не часовом поясе.<br /><a href="https://www.autoitscript.com/forum/topic/182494-problems-and-solutions-with-filesettime-filegettime-and-dst-daylight-saving-time-enabled-in-windows-7/">https://www.autoitscript.com/forum/topi … windows-7/</a></p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2019-05-31T17:46:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134592#p134592</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134591#p134591" />
			<content type="html"><![CDATA[<p><strong>MandarinKa02</strong>, в смысле, в ноябре 2011 часовой пояс на месяц сменился, а потом опять вернулся обратно? И разве не у вас не то время ставится командой FileSetTime, которое вы указываете?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2019-05-31T17:27:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134591#p134591</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134589#p134589" />
			<content type="html"><![CDATA[<p>Из-за часового пояса. Дата ставиться согласно UTC/GMT(+0), у вас часовой пояс может быть +1,+2,...</p>]]></content>
			<author>
				<name><![CDATA[MandarinKa02]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=34409</uri>
			</author>
			<updated>2019-05-31T16:51:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134589#p134589</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134588#p134588" />
			<content type="html"><![CDATA[<p>Насколько я понял, проблема касается только ноября 2011 года. Так что можно просто не обращать внимания.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2019-05-31T15:44:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134588#p134588</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134587#p134587" />
			<content type="html"><![CDATA[<p>Не думаю.<br /></p><div class="codebox"><pre><code>filePath := A_Desktop . &quot;\test.txt&quot;
YYYY := 2013
MM := &quot;09&quot;
DD := 11
HH24 := 13
if (YYYY &lt;= 2014)
   if (MM &lt;= 10)
      if (HH24 &lt;= 14)
         {
         HH24 := HH24 - 1
         }
MsgBox, % timetoset := YYYY . MM . DD . HH24 . MI . SS
FileSetTime, timetoset, % filePath, C
FileSetTime, timetoset, % filePath, M
FileSetTime, timetoset, % filePath, A </code></pre></div>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2019-05-31T15:26:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134587#p134587</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134586#p134586" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />Дошло наконец. Спасибо!<br />Чтобы работало корректно должно выглядеть так:<br /></p><div class="codebox"><pre><code>
if (YYYY &lt;= 2014)
	if (MM &lt;= 10)
		if (HH24 &lt;= 14)
			{
			HH24 := HH24 - 1
			}
timetoset := YYYY . MM . DD . HH24 . MI . SS
FileSetTime, timetoset, F:\скрипты\LOGmap.txt, C
FileSetTime, timetoset, F:\скрипты\LOGmap.txt, M
FileSetTime, timetoset, F:\скрипты\LOGmap.txt, A
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[dmitry-semin]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39549</uri>
			</author>
			<updated>2019-05-31T14:46:09Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134586#p134586</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: FileSetTime]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=134580#p134580" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>dmitry-semin пишет:</cite><blockquote><p>Увы, нет. Файл будет скомпилирован.</p></blockquote></div><p>Я имел в виду, что для демонстрации проблемы инпутбоксы не нужны, достаточно было записать код строкой.</p><div class="quotebox"><cite>dmitry-semin пишет:</cite><blockquote><p>Решил вопрос пока &quot;шляпокодом&quot;</p></blockquote></div><p>Так у вас в любом случае на час больше получается, независимо от даты?</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2019-05-31T09:41:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=134580#p134580</id>
		</entry>
</feed>
