<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Run CMD с заготовленной командой]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=16508</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16508&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Run CMD с заготовленной командой».]]></description>
		<lastBuildDate>Fri, 30 Jul 2021 20:41:18 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Run CMD с заготовленной командой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=149109#p149109</link>
			<description><![CDATA[<p>Скриптом с горячей клавишей можете запускать свой bat-файл:<br /></p><div class="codebox"><pre><code>^q:: Run D:\Folder\MyFile.bat</code></pre></div><div class="quotebox"><cite>skipper-si пишет:</cite><blockquote><p>запустил и ничего</p></blockquote></div><p>А чего вы ожидали? Он на 5 секунд меняет системное время. Чтобы проверить, можете увеличить 5000 (это в милисекундах). Никаких сообщений он не должен выводить. Хотя, для теста можно добавить сообщение сюда:<br /></p><div class="codebox"><pre><code>MsgBox, % tempdate := CmdRet(&quot;cmd /c echo %date:~-10%&quot;)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 30 Jul 2021 20:41:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=149109#p149109</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Run CMD с заготовленной командой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=149108#p149108</link>
			<description><![CDATA[<p><strong>teadrinker</strong><br />Что-то я не понял, как этот большой код работает. Я скомпилил его через ahk2exe, запустил и ничего, так же добавил горячую клавишу в начале и тоже ничего, а скрипт msgbox работает, но он выводит сообщение просто и все <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (skipper-si)]]></author>
			<pubDate>Fri, 30 Jul 2021 19:49:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=149108#p149108</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Run CMD с заготовленной командой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=149107#p149107</link>
			<description><![CDATA[<p><strong>teadrinker</strong><br />Спасибо огромное! Сейчас попробую и отпишусь.<br />А по поводу %, добавление с %date:~-10% десятого и девятого символов справа от текущей даты locale, которая является месяцем.</p>]]></description>
			<author><![CDATA[null@example.com (skipper-si)]]></author>
			<pubDate>Fri, 30 Jul 2021 18:52:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=149107#p149107</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Run CMD с заготовленной командой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=149104#p149104</link>
			<description><![CDATA[<p>Не совсем понял «иногда не срабатывает и приходится несколько раз нажимать горячую клавишу». В каком смысле не срабатывает? Горячую клавишу через AHK устанавливали? Может, как-то неверно установили? Вот так<br /></p><div class="codebox"><pre><code>^q:: MsgBox, Работает!</code></pre></div><p>работает? Если да, то так же и bat-файл можно запустить.</p><p>Дату <a href="https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-setlocaltime">можно</a> менять и без cmd, если задача именно в этом. В любом случае, чтобы вызвать команды через cmd, не обязательно посылать их в окно консоли. Например:<br /></p><div class="codebox"><pre><code>tempdate := CmdRet(&quot;cmd /c echo %date:~-10%&quot;)
CmdRet(&quot;cmd /c date 14.06.2021&quot;)
Sleep 5000
CmdRet(&quot;cmd /c date &quot; . tempdate)

CmdRet(sCmd, callBackFunc := &quot;&quot;, encoding := &quot;&quot;)
{
   static flags := [HANDLE_FLAG_INHERIT := 0x1, CREATE_NO_WINDOW := 0x8000000], STARTF_USESTDHANDLES := 0x100
        
   (encoding = &quot;&quot; &amp;&amp; encoding := &quot;cp&quot; . DllCall(&quot;GetOEMCP&quot;, &quot;UInt&quot;))
   DllCall(&quot;CreatePipe&quot;, &quot;PtrP&quot;, hPipeRead, &quot;PtrP&quot;, hPipeWrite, &quot;Ptr&quot;, 0, &quot;UInt&quot;, 0)
   DllCall(&quot;SetHandleInformation&quot;, &quot;Ptr&quot;, hPipeWrite, &quot;UInt&quot;, flags[1], &quot;UInt&quot;, flags[1])
   
   VarSetCapacity(STARTUPINFO , siSize :=    A_PtrSize*9 + 4*8, 0)
   NumPut(siSize              , STARTUPINFO)
   NumPut(STARTF_USESTDHANDLES, STARTUPINFO, A_PtrSize*4 + 4*7)
   NumPut(hPipeWrite          , STARTUPINFO, siSize - A_PtrSize*2)
   NumPut(hPipeWrite          , STARTUPINFO, siSize - A_PtrSize)
   
   VarSetCapacity(PROCESS_INFORMATION, A_PtrSize*2 + 4*2, 0)
   if !DllCall(&quot;CreateProcess&quot;, &quot;Ptr&quot;, 0, &quot;Str&quot;, sCmd, &quot;Ptr&quot;, 0, &quot;Ptr&quot;, 0, &quot;UInt&quot;, true, &quot;UInt&quot;, flags[2]
                              , &quot;Ptr&quot;, 0, &quot;Ptr&quot;, 0, &quot;Ptr&quot;, &amp;STARTUPINFO, &quot;Ptr&quot;, &amp;PROCESS_INFORMATION)
   {
      DllCall(&quot;CloseHandle&quot;, &quot;Ptr&quot;, hPipeRead)
      DllCall(&quot;CloseHandle&quot;, &quot;Ptr&quot;, hPipeWrite)
      throw &quot;CreateProcess is failed&quot;
   }
   DllCall(&quot;CloseHandle&quot;, &quot;Ptr&quot;, hPipeWrite)
   VarSetCapacity(sTemp, 4096), nSize := 0
   while DllCall(&quot;ReadFile&quot;, &quot;Ptr&quot;, hPipeRead, &quot;Ptr&quot;, &amp;sTemp, &quot;UInt&quot;, 4096, &quot;UIntP&quot;, nSize, &quot;UInt&quot;, 0) {
      sOutput .= stdOut := StrGet(&amp;sTemp, nSize, encoding)
      ( callBackFunc &amp;&amp; %callBackFunc%(stdOut) )
   }
   DllCall(&quot;CloseHandle&quot;, &quot;Ptr&quot;, NumGet(PROCESS_INFORMATION))
   DllCall(&quot;CloseHandle&quot;, &quot;Ptr&quot;, NumGet(PROCESS_INFORMATION, A_PtrSize))
   DllCall(&quot;CloseHandle&quot;, &quot;Ptr&quot;, hPipeRead)
   Return sOutput
}</code></pre></div><p>Не знаю, что именно даёт <em>:~-10</em>.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 30 Jul 2021 16:57:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=149104#p149104</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Run CMD с заготовленной командой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=149103#p149103</link>
			<description><![CDATA[<p><strong>teadrinker</strong><br />Сейчас 30.07.2021. Код меняет дату на, допустим, 27.07.2021, затем ждет 5 секунд и возвращает дату обратно на 30.07.2021.<br />Я писал выше, что иногда не срабатывает и приходится несколько раз нажимать горячую клавишу, ahk с этим справляется гораздо лучше, судя по тому, что я написал выше.</p>]]></description>
			<author><![CDATA[null@example.com (skipper-si)]]></author>
			<pubDate>Fri, 30 Jul 2021 16:35:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=149103#p149103</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Run CMD с заготовленной командой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=149102#p149102</link>
			<description><![CDATA[<p>Я в cmd не силён, можете описать, что именно этот код делает? Возможно, cmd здесь лишнее.<br />Ну, или можно просто по горячей клавише запускать bat-файл.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 30 Jul 2021 13:38:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=149102#p149102</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Run CMD с заготовленной командой]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=149100#p149100</link>
			<description><![CDATA[<p>Есть .bat с командной, но через &quot;горячие клавиши&quot;, бывает, не срабатывает. Решил поискать макросы и наткнулся на AHK.<br />По-изучав форум, смог разобраться по мелочи, но на моменте с вносом команды в cmd застрял. <br /></p><div class="codebox"><pre><code>
^q::
run, *runas cmd ,,hide
</code></pre></div><br /><p>Вот, что мне удалось. <br />Нужно что б открывалась cmd в hide и вносилась команда, но как это реализовать, не могу найти и тем похожих нет.<br /></p><div class="codebox"><pre><code>
set tempdate=%date:~-10%
date 14.06.2021
timeout 5
date %tempdate%
</code></pre></div><p>Команда в .bat</p>]]></description>
			<author><![CDATA[null@example.com (skipper-si)]]></author>
			<pubDate>Fri, 30 Jul 2021 12:20:15 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=149100#p149100</guid>
		</item>
	</channel>
</rss>
