Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] StdOutRead и ShellExecute

Ответить
Настройки темы
[решено] StdOutRead и ShellExecute

Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть консольная прога, которая запускается с параметрами с помощью ShellExecute(). В справке написано, что StdOutRead только для запуска с помощью Run(). Вопрос: как получить выдачу(по-моему эт так называется) консоля, т.е. то, что отображается на экране, eсли запущен процесс ShellExecute'ом?

Отправлено: 12:40, 12-08-2010

 

Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


ShogenOFF, запускать Run'ом?

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru


Отправлено: 13:32, 12-08-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Microteam

Новый участник


Сообщения: 27
Благодарности: 2

Профиль | Сайт | Отправить PM | Цитировать


Да я понял ваш вопрос поробуйте с помощью ConsoleRead()

-------
Powered by Microteam inc.


Отправлено: 16:25, 12-08-2010 | #3


Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Не понял.....Мне нужно запустить консльную прогу с параметрами и с выводом выдачи консоля

Отправлено: 16:32, 12-08-2010 | #4


Аватара для kaster

Старожил


Сообщения: 367
Благодарности: 91

Профиль | Отправить PM | Цитировать


ShogenOFF, любую программу запущенную ShellExecute'ом можно запустить Run'ом

-------
Русское сообщество пользователей AutoIt
autoit@conference.jabber.ru - Конференция на jabber.ru


Отправлено: 16:52, 12-08-2010 | #5


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


ShogenOFF,
Попробуйте так:
Код: Выделить весь код
#include <Constants.au3>
;#include <Encoding.au3>

$sLog = ''
$hIPconfig = Run('IPCONFIG /?', '', @SW_HIDE, $STDOUT_CHILD)
;$hIPconfig = Run(@ComSpec & ' /C IPCONFIG /?', '', @SW_HIDE, $STDOUT_CHILD)
While 1
    $sLog &= StdoutRead($hIPconfig)
    If @error Then ExitLoop
    Sleep(10)
WEnd
;$sLog = _Encoding_866To1251($sLog)
MsgBox(0, '', $sLog)
Поменяйте IPCONFIG на Вашу консольную программу, /? - на Ваши параметры, , '', - на Вашу рабочую директорию. На всякий случай: Encoding UDF. (если будут вылазить кракозябры).
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:43, 12-08-2010 | #6


Ветеран


Сообщения: 903
Благодарности: 161

Профиль | Отправить PM | Цитировать


madmasles, а если понадобиться вывести данные $sLog не в меседж-бокс, а в GuiEdit, например?

Что-то у меня не выводятся:
Код: Выделить весь код
********* задание формы и т.д.

$Edit1 = GUICtrlCreateEdit("", 24, 64, 481, 233)
local $sLog = ''
local $hIPconfig = Run(@ComSpec & ' /C CSCRIPT %SYSTEMROOT%\system32\eventquery.vbs /fi "Type eq ERROR" /fo TABLE /NH', '', @SW_HIDE, $STDOUT_CHILD)
While 1
    $sLog &= StdoutRead($hIPconfig)
    If @error Then ExitLoop
    Sleep(10)
WEnd
GUICtrlSetData ($Edit1, _Encoding_866To1251($sLog))
не могу понять, что мешает...

-------
мы рождены, чтоб сказку сделать былью


Отправлено: 02:52, 14-08-2010 | #7


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата saavaage:
не могу понять, что мешает... »
Странно. У меня все выводится, причем с тремя вариантами:
Код: Выделить весь код
#include <Constants.au3>
#include <Encoding.au3>
#include <GUIConstantsEx.au3>

#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 623, 445, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 104, 24, 433, 385)
$sLog = ''
;$hIPconfig = Run(@ComSpec & ' /C CSCRIPT %SYSTEMROOT%\system32\eventquery.vbs /fi "Type eq ERROR" /fo TABLE /NH', '', @SW_HIDE, $STDOUT_CHILD)
$hIPconfig = Run('CSCRIPT.exe ' & @SystemDir & '\eventquery.vbs /fi "Type eq ERROR" /fo TABLE /NH', '', @SW_HIDE, $STDOUT_CHILD)
;$hIPconfig = Run(@ComSpec & ' /C CSCRIPT ' & @SystemDir & '\eventquery.vbs /fi "Type eq ERROR" /fo TABLE /NH', '', @SW_HIDE, $STDOUT_CHILD)
While 1
    $sLog &= StdoutRead($hIPconfig)
    If @error Then ExitLoop
    Sleep(10)
WEnd
GUICtrlSetData($Edit1, _Encoding_866To1251($sLog))
$Button1 = GUICtrlCreateButton("Обновить", 16, 120, 65, 57)
GUICtrlSetState(-1, $GUI_FOCUS)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            GUICtrlSetData($Edit1, '')
            $sLog = ''
            ;$hIPconfig = Run(@ComSpec & ' /C CSCRIPT %SYSTEMROOT%\system32\eventquery.vbs /fi "Type eq ERROR" /fo TABLE /NH', '', @SW_HIDE, $STDOUT_CHILD)
            $hIPconfig = Run('CSCRIPT.exe ' & @SystemDir & '\eventquery.vbs /fi "Type eq ERROR" /fo TABLE /NH', '', @SW_HIDE, $STDOUT_CHILD)
            ;$hIPconfig = Run(@ComSpec & ' /C CSCRIPT ' & @SystemDir & '\eventquery.vbs /fi "Type eq ERROR" /fo TABLE /NH', '', @SW_HIDE, $STDOUT_CHILD)
            While 1
                $sLog &= StdoutRead($hIPconfig)
                If @error Then ExitLoop
                Sleep(10)
            WEnd
            GUICtrlSetData($Edit1, _Encoding_866To1251($sLog))
    EndSwitch
WEnd

Последний раз редактировалось madmasles, 14-08-2010 в 10:50. Причина: поправил код

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:34, 14-08-2010 | #8


Ветеран


Сообщения: 903
Благодарности: 161

Профиль | Отправить PM | Цитировать


madmasles, проблема, скорее всего, что у меня не одна вкладка и на каждой выполняются функции. Уже не в первый раз такое происходит.

Все, разобрался. Пропустил
#include <Constants.au3>

Показалось, что есть, а на самом деле - не было включено

-------
мы рождены, чтоб сказку сделать былью


Последний раз редактировалось saavaage, 14-08-2010 в 12:54.


Отправлено: 12:31, 14-08-2010 | #9


Ветеран


Сообщения: 903
Благодарности: 161

Профиль | Отправить PM | Цитировать


madmasles, не подскажешь как вывод ограничить только нужной информацией. Мне, например, не надо, чтобы выводились эти строки:
Код: Выделить весь код
Сервер сценариев Windows (Microsoft R) версия 5.7
c Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.

 
ИНФОРМАЦИЯ: Для журнала 'application' нет записей, отвечающих заданному критерию.
 
INFO: Нет доступных записей в журнале '%3'.
 
INFO: Нет доступных записей в журнале '%3'.
Можно сделать, чтобы выводилось, только то, что под ними? Т.е. начало вывода - с полосы

Код: Выделить весь код
------------------------------------------------------------------------------
На всякий прикрепляю весь полученный вывод:
читать дальше »
Код: Выделить весь код
Сервер сценариев Windows (Microsoft R) версия 5.7
c Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.

 
ИНФОРМАЦИЯ: Для журнала 'application' нет записей, отвечающих заданному критерию.
 
INFO: Нет доступных записей в журнале '%3'.
 
INFO: Нет доступных записей в журнале '%3'.
 
------------------------------------------------------------------------------
Перечисление событий в журнале 'system' для узла 'CAVE-0001974'
------------------------------------------------------------------------------
 ошибка        7011   08.10.2010 18:22:04      Service Control M CAVE-0001974

Отправлено: 12:56, 14-08-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] StdOutRead и ShellExecute

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - [решено] Запуск *.exe файла с ключами в ShellExecute.Как осуществить? Virtyaluk Программирование и базы данных 4 31-03-2010 16:52
Разное - ShellExecute и perl user171078 Программирование и базы данных 0 23-01-2010 12:44




 
Переход