|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] StdOutRead и ShellExecute |
|
|
[решено] StdOutRead и ShellExecute
|
Новый участник Сообщения: 29 |
Есть консольная прога, которая запускается с параметрами с помощью ShellExecute(). В справке написано, что StdOutRead только для запуска с помощью Run(). Вопрос: как получить выдачу(по-моему эт так называется) консоля, т.е. то, что отображается на экране, eсли запущен процесс ShellExecute'ом?
|
|
Отправлено: 12:40, 12-08-2010 |
![]() Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать ShogenOFF, запускать Run'ом?
|
------- Отправлено: 13:32, 12-08-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Новый участник Сообщения: 27
|
Профиль | Сайт | Отправить PM | Цитировать Да я понял ваш вопрос поробуйте с помощью ConsoleRead()
|
------- Отправлено: 16:25, 12-08-2010 | #3 |
Новый участник Сообщения: 29
|
Профиль | Отправить PM | Цитировать Не понял.....Мне нужно запустить консльную прогу с параметрами и с выводом выдачи консоля
|
Отправлено: 16:32, 12-08-2010 | #4 |
![]() Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать ShogenOFF, любую программу запущенную ShellExecute'ом можно запустить Run'ом
|
|
------- Отправлено: 16:52, 12-08-2010 | #5 |
Ветеран Сообщения: 812
|
Профиль | Отправить 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) |
Отправлено: 17:43, 12-08-2010 | #6 |
Ветеран Сообщения: 903
|
Профиль | Отправить 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 |
Ветеран Сообщения: 812
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать madmasles, проблема, скорее всего, что у меня не одна вкладка и на каждой выполняются функции. Уже не в первый раз такое происходит.
Все, разобрался. Пропустил #include <Constants.au3> Показалось, что есть, а на самом деле - не было включено |
------- Последний раз редактировалось saavaage, 14-08-2010 в 12:54. Отправлено: 12:31, 14-08-2010 | #9 |
Ветеран Сообщения: 903
|
Профиль | Отправить PM | Цитировать madmasles, не подскажешь как вывод ограничить только нужной информацией. Мне, например, не надо, чтобы выводились эти строки:
Сервер сценариев Windows (Microsoft R) версия 5.7 c Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены. ИНФОРМАЦИЯ: Для журнала 'application' нет записей, отвечающих заданному критерию. INFO: Нет доступных записей в журнале '%3'. INFO: Нет доступных записей в журнале '%3'. На всякий прикрепляю весь полученный вывод: |
Отправлено: 12:56, 14-08-2010 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - [решено] Запуск *.exe файла с ключами в ShellExecute.Как осуществить? | Virtyaluk | Программирование и базы данных | 4 | 31-03-2010 16:52 | |
Разное - ShellExecute и perl | user171078 | Программирование и базы данных | 0 | 23-01-2010 12:44 |
|