<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=7316&amp;type=atom" />
	<updated>2014-02-26T22:12:35Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=7316</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=80394#p80394" />
			<content type="html"><![CDATA[<p>Вот отличный вариант.<br /></p><div class="codebox"><pre><code>#NoTrayIcon
DllCall(&quot;AllocConsole&quot;)
WinHide % &quot;ahk_id &quot; DllCall(&quot;GetConsoleWindow&quot;, &quot;ptr&quot;)
loop
{
   objShell := ComObjCreate(&quot;WScript.Shell&quot;)
   objExec := objShell.Exec(ComSpec &quot; /C echo list volume | C:\Windows\System32\diskpart.exe&quot;)
   strStdOut := &quot;&quot;
   while, !objExec.StdOut.AtEndOfStream
      strStdOut := objExec.StdOut.ReadAll()
   Loop, Parse, strStdOut, `n, `r
   {
      If (instr(A_LoopField, &quot;Failed&quot;) || instr(A_LoopField, &quot;At Risk&quot;))
      {
         errors = 1
         StringMid, disk, A_LoopField, 16, 1
         break
      }
   }
   If errors = 1
   {
      Menu, Tray, Icon
      Gui,+AlwaysOnTop
      Gui, -MinimizeBox -MaximizeBox
      Gui, Font, s80, Times New Roman
      Gui, Add, Text,, Problema s Raid Disk: %disk%
      Gui, Show,, RaidError
      Gui, +LastFound
      OnMessage(0x112, &quot;WM_SYSCOMMAND&quot;)
      Return
   }
   sleep, 3600000
}

WM_SYSCOMMAND(wParam)
{
   if (A_Gui = 1 &amp;&amp; wParam = 0xF060) ; SC_CLOSE
      return 0
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-02-26T22:12:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=80394#p80394</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=80388#p80388" />
			<content type="html"><![CDATA[<p>Нарыл такой код.<br />Работает, но есть вопрос:<br />Как захватить&nbsp; хендл экрана консоли не ожидая 5 секунд (sleep 5000)?<br />То есть инфа вывелась - пошел захват.</p><div class="codebox"><pre><code>#NoTrayIcon
DetectHiddenWindows, on
loop
{
   Run, %comspec% /k echo list volume | diskpart.exe, , hide, pid
   sleep 5000

   ; AttachConsole accepts a process ID.
   if !DllCall(&quot;AttachConsole&quot;,&quot;uint&quot;,pid)
   {
      MsgBox AttachConsole failed - error %A_LastError%.
      ExitApp
   }

   ; If it succeeded, console functions now operate on the target console window.
   ; Use CreateFile to retrieve a handle to the active console screen buffer.
   hConOut := DllCall(&quot;CreateFile&quot;, &quot;str&quot;, &quot;CONOUT$&quot;, &quot;uint&quot;, 0xC0000000, &quot;uint&quot;, 7, &quot;PTR&quot;, 0, &quot;uint&quot;, 3, &quot;uint&quot;, 0, &quot;PTR&quot;, 0, &quot;PTR&quot;)
   if hConOut = -1 ; INVALID_HANDLE_VALUE
   {
      MsgBox CreateFile failed - error %A_LastError%.
      ExitApp
   }

   ; Allocate memory for a CONSOLE_SCREEN_BUFFER_INFO structure.
   VarSetCapacity(info, 24, 0)

   ; Get info about the active console screen buffer.
   if(!DllCall(&quot;GetConsoleScreenBufferInfo&quot;, &quot;PTR&quot;, hConOut, &quot;PTR&quot;, &amp;info))
   {
      MsgBox GetConsoleScreenBufferInfo failed - error %A_LastError%.
      ExitApp
   }

   ; Determine which section of the buffer is on display.
   ConWinLeft := NumGet(info, 10, &quot;Short&quot;)     ; info.srWindow.Left
   ConWinTop := NumGet(info, 12, &quot;Short&quot;)      ; info.srWindow.Top
   ConWinRight := NumGet(info, 14, &quot;Short&quot;)    ; info.srWindow.Right
   ConWinBottom := NumGet(info, 16, &quot;Short&quot;)   ; info.srWindow.Bottom
   ConWinWidth := ConWinRight-ConWinLeft+1
   ConWinHeight := ConWinBottom-ConWinTop+1
 
  ; Allocate memory to read into.
   VarSetCapacity(text, ConWinWidth*ConWinHeight*(A_IsUnicode ? 2 : 1), 0)

   ; Read text.
   if(!DllCall(&quot;ReadConsoleOutputCharacter&quot;, &quot;PTR&quot;, hConOut, &quot;str&quot;, text, &quot;uint&quot;, ConWinWidth*ConWinHeight, &quot;uint&quot;, 0, &quot;PTR*&quot;, numCharsRead, &quot;uint&quot;))
   {
      MsgBox ReadConsoleOutputCharacter failed - error %A_LastError%.
      ExitApp
   }

   ; Optional: insert line breaks every %ConWinWidth% characters.
   text := RegExReplace(text, &quot;`a).{&quot; ConWinWidth &quot;}(?=.)&quot;, &quot;$0`n&quot;)
   text := RegExReplace(text, &quot;^\s+|\s+$&quot;)

   DllCall(&quot;FreeConsole&quot;)
   WinClose, ahk_pid %pid%

   Loop, Parse, text, `n, `r
   {
      If (instr(A_LoopField, &quot;Failed&quot;) || instr(A_LoopField, &quot;At Risk&quot;))
      {
         errors = 1
         StringMid, disk, A_LoopField, 16, 1
         break
      }
   }
   If errors = 1
   {
      Menu, Tray, Icon
      Gui,+AlwaysOnTop
      Gui, -MinimizeBox -MaximizeBox
      Gui, Font, s80, Times New Roman
      Gui, Add, Text,, Problema s Raid Disk: %disk%
      Gui, Show,, RaidError
      Gui, +LastFound
      OnMessage(0x112, &quot;WM_SYSCOMMAND&quot;)
      Return
   }
   sleep, 3600000
}

WM_SYSCOMMAND(wParam)
{
   if (A_Gui = 1 &amp;&amp; wParam = 0xF060) ; SC_CLOSE
      return 0
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-02-26T13:18:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=80388#p80388</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=80387#p80387" />
			<content type="html"><![CDATA[<p>Подскажите, пожалуйста,<br /></p><div class="codebox"><pre><code>msgbox % StrGet(&amp;Buffer, 1000, &quot;UTF-16&quot;)</code></pre></div><p> избавляется от символов&nbsp; `n, `r<br />Поэтому непонятно, как ее дальше парсить.<br />Если же тупо скопировать в клипбоард с CMD, либо экспортировать в файл, то `n, `r остаются.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-02-26T09:01:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=80387#p80387</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79304#p79304" />
			<content type="html"><![CDATA[<p>Если возвращаемое функцией значение вам не нужно, то и тип его указывать незачем.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2014-01-18T13:22:17Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79304#p79304</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79301#p79301" />
			<content type="html"><![CDATA[<p>О! Спасибо большое, YMP!<br />А правильней может будет так?<br /></p><div class="codebox"><pre><code> DllCall(&quot;FreeConsole&quot;, &quot;int&quot;)</code></pre></div><p>И в чем разница между ними?</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-01-18T11:47:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79301#p79301</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79299#p79299" />
			<content type="html"><![CDATA[<p>Подключаемся к окну консоли указанного процесса, получаем хэндл выходного потока, который в данном случае будет также хэндлом активного экранного буфера консоли, и читаем текст из него.</p><p>Понял, чего не хватает в коде: в конце должно быть<br /></p><div class="codebox"><pre><code>DllCall(&quot;FreeConsole&quot;)</code></pre></div><p>Поскольку больше одной консоли подключать нельзя, то предыдущую нужно освобождать.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2014-01-18T03:54:50Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79299#p79299</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79298#p79298" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code> bResult := DllCall(&quot;AttachConsole&quot;, &quot;uint&quot;, dwProcessId, &quot;int&quot;)

   ;hConsole := DllCall(&quot;CreateFileW&quot;, &quot;str&quot;, &quot;CONOUT$&quot;, &quot;uint&quot;, 0x80000000, &quot;uint&quot;, 1, &quot;ptr&quot;, 0, &quot;uint&quot;, 3, &quot;uint&quot;, 0x80, &quot;ptr&quot;, 0, &quot;ptr&quot;)
   hConsole := DllCall(&quot;GetStdHandle&quot;, &quot;uint&quot;, -11, &quot;ptr&quot;)

   bResult := DllCall(&quot;ReadConsoleOutputCharacter&quot;, &quot;ptr&quot;, hConsole, &quot;ptr&quot;, &amp;Buffer, &quot;uint&quot;, 100, &quot;ptr&quot;, 0, &quot;uint*&quot;, x, &quot;int&quot;)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-01-18T03:23:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79298#p79298</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79297#p79297" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Чаще всего понадобится префикс <em>cmd /c</em>.</p></blockquote></div><p>Вообще-то это не префикс, а запуск программы cmd.exe с передачей ей аргументов. Если нужно выполнить внутреннюю команду cmd вроде dir, ren, del и т.п., то нужно запускать cmd.exe. Но отдельные программы вроде chkdsk.exe запускаются сами по себе. Разве что их нужно между собой связать, чтобы одна обрабатывала вывод другой.</p><div class="quotebox"><cite>Malcev пишет:</cite><blockquote><p>Вероятно, это потому что я не понимаю алгоритм кода в первом сообщении.<br />Может вы сможете написать комментарии?</p></blockquote></div><p>Но там ведь есть комментарии. Какая именно часть кода не понятна?</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2014-01-18T03:02:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79297#p79297</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79296#p79296" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Тут мне ход мысли не понятен.</p></blockquote></div><p>Вероятно, это потому что я не понимаю алгоритм кода в первом сообщении.<br />Может вы сможете написать комментарии?</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-01-18T00:27:08Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79296#p79296</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79294#p79294" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>Запустите скрипт и введите что-нибудь в нижнее поле</p></blockquote></div><p>Чаще всего понадобится префикс <em>cmd /c</em>.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2014-01-17T20:46:43Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79294#p79294</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79290#p79290" />
			<content type="html"><![CDATA[<p>Могу только предположить, что ваш код пытается многократно подключать одну и ту же консоль, а это не положено.<br /></p><div class="quotebox"><blockquote><p>Ведь если при закрытии CMD, я открою новое у него не поменяется хендл?</p></blockquote></div><p>Тут мне ход мысли не понятен.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2014-01-17T13:55:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79290#p79290</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79288#p79288" />
			<content type="html"><![CDATA[<p>Спасибо! Это, как альтернатива - хорошо.<br />Но если таки вернуться к исходному коду.<br />Почему нельзя загрузить весь код в цикл?<br />Ведь если при закрытии CMD, я открою новое у него не поменяется хендл?</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-01-17T13:29:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79288#p79288</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79284#p79284" />
			<content type="html"><![CDATA[<p>При желании можно сделать вывод программы в контрол Edit. См. пример ниже. Запустите скрипт и введите что-нибудь в нижнее поле, например, ping localhost или т.п.<br /></p><div class="codebox"><pre><code>
Gui, Add, Edit, w480 h300 HWNDhwndOutput
Gui, Add, Edit, w480 r1 vCmdLine
Gui, Add, Button, Default w80 h20 gExec, Выполнить
GuiControl, Focus, CmdLine
Gui, Show
Return

Exec:
    GuiControlGet, CmdLine
    RunConAppToEdit(CmdLine, &quot;&quot;, hwndOutput)
Return

GuiClose:
    ExitApp

RunConAppToEdit(CmdLine, Input, hwndEdit)
{
    static BufSizeChar := 1024, hParent := 0
    static Show := 0, Flags := 0x101  ; STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW
    static Buf, BufSizeByte, ProcessInfo, StartupInfo, PipeAttribs
    static piSize, siSize, paSize, flOffset, shOffset, ihOffset
    static inOffset, outOffset, errOffset, thrOffset
    If (!hParent) {
        BufSizeByte := A_IsUnicode ? BufSizeChar * 2 : BufSizeChar
        If (A_PtrSize = 8) {
            piSize := 24, siSize := 104, paSize = 24
            flOffset := 60, shOffset := 64, ihOffset := 16
            inOffset := 80, outOffset := 88, errOffset := 96
            thrOffset := 8
        }
        Else {
            piSize := 16, siSize := 68, paSize = 12
            flOffset := 44, shOffset := 48, ihOffset := 8
            inOffset := 56, outOffset := 60, errOffset := 64
            thrOffset := 4
        }
        VarSetCapacity(Buf, BufSizeByte, 0),    VarSetCapacity(ProcessInfo, piSize, 0)
        VarSetCapacity(StartupInfo, siSize, 0), VarSetCapacity(PipeAttribs, paSize, 0)
        NumPut(siSize, StartupInfo, 0, &quot;uint&quot;), NumPut(Flags, StartupInfo, flOffset, &quot;uint&quot;)
        NumPut(Show, StartupInfo, shOffset, &quot;ushort&quot;)
        NumPut(paSize, PipeAttribs, 0, &quot;uint&quot;), NumPut(1, PipeAttribs, ihOffset, &quot;int&quot;)
        hParent := DllCall(&quot;GetCurrentProcess&quot;, &quot;ptr&quot;)
    }
    DllCall(&quot;CreatePipe&quot;, &quot;ptr *&quot;, hRead1_tmp, &quot;ptr *&quot;, hWrite2
                        , &quot;ptr&quot;, &amp;PipeAttribs, &quot;uint&quot;, 0)
    DllCall(&quot;CreatePipe&quot;, &quot;ptr *&quot;, hRead2, &quot;ptr *&quot;, hWrite1_tmp
                        , &quot;ptr&quot;, &amp;PipeAttribs, &quot;uint&quot;, 0)

    NumPut(hRead2,  StartupInfo, inOffset, &quot;ptr&quot;) 
    NumPut(hWrite2, StartupInfo, outOffset, &quot;ptr&quot;)
    NumPut(hWrite2, StartupInfo, errOffset, &quot;ptr&quot;)
    
    DllCall(&quot;DuplicateHandle&quot;, &quot;ptr&quot;, hParent, &quot;ptr&quot;, hRead1_tmp
                             , &quot;ptr&quot;, hParent, &quot;ptr *&quot;, hRead1
                             , &quot;uint&quot;, 0, &quot;uint&quot;, 0
                             , &quot;uint&quot;, 2)    ; DUPLICATE_SAME_ACCESS
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hRead1_tmp)
    DllCall(&quot;DuplicateHandle&quot;, &quot;ptr&quot;, hParent, &quot;ptr&quot;, hWrite1_tmp
                             , &quot;ptr&quot;, hParent, &quot;ptr *&quot;, hWrite1
                             , &quot;uint&quot;, 0, &quot;uint&quot;, 0
                             , &quot;uint&quot;, 2)
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hWrite1_tmp)
    
    DllCall(&quot;ExpandEnvironmentStrings&quot;, &quot;str&quot;, CmdLine, &quot;str&quot;, Buf, &quot;uint&quot;, BufSizeChar)
    CmdLine := Buf
    Ret := DllCall(&quot;CreateProcess&quot;, &quot;ptr&quot;, 0, &quot;str&quot;, CmdLine, &quot;ptr&quot;, 0, &quot;ptr&quot;, 0
                                  , &quot;uint&quot;, 1, &quot;uint&quot;, 0, &quot;ptr&quot;, 0, &quot;ptr&quot;, 0
                                  , &quot;ptr&quot;, &amp;StartupInfo, &quot;ptr&quot;, &amp;ProcessInfo)
    If (!Ret) {
        MsgBox,, %A_ThisFunc%, Не удалось создать процесс.
        Output := &quot;&quot;
        Return 1
    }
    hChild := NumGet(ProcessInfo, 0, &quot;ptr&quot;)
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, NumGet(ProcessInfo, thrOffset, &quot;ptr&quot;))
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hRead2)
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hWrite2)
    If (Input) {
        InLen := StrLen(Input) + 2
        VarSetCapacity(InBuf, InLen, 0)
        StrPut(Input . &quot;`r`n&quot;, &amp;InBuf, &quot;cp866&quot;)
        DllCall(&quot;WriteFile&quot;, &quot;ptr&quot;, hWrite1, &quot;ptr&quot;, &amp;InBuf, &quot;uint&quot;, InLen
                           , &quot;uint *&quot;, BytesWritten, &quot;uint&quot;, 0)
    }
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hWrite1)
    Output := &quot;&quot;
    Loop {
        If not DllCall(&quot;ReadFile&quot;, &quot;ptr&quot;, hRead1, &quot;ptr&quot;, &amp;Buf, &quot;uint&quot;, BufSizeByte
                                 , &quot;uint *&quot;, BytesRead, &quot;uint&quot;, 0)
            Break
        NumPut(0, Buf, BytesRead, &quot;Char&quot;)
        Output := StrGet(&amp;Buf, &quot;cp866&quot;) . &quot;`n&quot;
        SendMessage, 0xC2, False, &amp;Output,, ahk_id %hwndEdit%
    }
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hRead1)
    DllCall(&quot;GetExitCodeProcess&quot;, &quot;ptr&quot;, hChild, &quot;int *&quot;, ExitCode)
    DllCall(&quot;CloseHandle&quot;, &quot;ptr&quot;, hChild)
    Return ExitCode
}
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2014-01-17T08:32:57Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79284#p79284</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79283#p79283" />
			<content type="html"><![CDATA[<p>Но ведь запуск чекдиска вы не скриптом делаете? Он должен подключиться к существующему окну консоли, а затем в цикле из него читать. Подключение-то к окну не нужно в цикл ставить.</p>]]></content>
			<author>
				<name><![CDATA[YMP]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=81</uri>
			</author>
			<updated>2014-01-17T07:50:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79283#p79283</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Как добыть информацию из окна cmd для последующего парсинга]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=79282#p79282" />
			<content type="html"><![CDATA[<p>Задача такая, запускаем ссылку с определенным названием на батник, в котором запускается cmd и запускается chkdsk. Как только появляется надпись &quot;Windows has checked the file system&quot; закрываем cmd с определенным названием, так как их может быть несколько, запускаем снова этот батник и опять следим. Поэтому и цикл я взял всего скрипта.</p>]]></content>
			<author>
				<name><![CDATA[Malcev]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26930</uri>
			</author>
			<updated>2014-01-17T07:10:56Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=79282#p79282</id>
		</entry>
</feed>
