![]() |
запуск приложения с параметром /?
Всем доброго времени суток :)
при помощи System.Diagnostics.Process.Start можно запускать\останавливать и управлять процессами... все ОК, но вот как-бы help по параметрам посмотреть... параметр /? предоставляет справку в cmd если они у проги имеются... Visual Studio 2010 //// vb.NET консольное приложение мне на определенном этапе необходимо, чтобы открылась вот эта самая справка... архиватор 7zip прописан в сист.PATH как "7z" н\п Код:
System.Diagnostics.Process.Start("7z","/?") как бы задержать вот эту справку? |
RUVATA если допустимо что б текст справки выводился не поверх консоли VS, а прямо в ней, то можно и не задерживать вывод.
Для осуществления вывода в консоль VS необходимо будет задействовать средства Win32: CreatePipe -> Accessing CreateProcess from C# and VB.NET -> ReadFile |
у меня проблема, или код примера не верен, или какие-то свойства проекта не позволяют так испоьзовать dll
Код:
<DllImport("kernel32.dll")> _ Код:
<DllImport("KERNEL32.DLL", EntryPoint:="MoveFileW", SetLastError:=True, |
RUVATA, можно воспользовался VB6м вариантом (см. в программе Api Viewer 2004, не забывая что при переходе (VB6 -> VB.NET) Long заменяется на Integer)
Код:
Declare Function CreateProcess Lib "kernel32.dll" Alias "CreateProcessA" ( _ |
так... я все поправил код работает... и смысл?
Цитата:
|
RUVATA это не готовый по вопросу пример, а пример лишь использования CreateProcess в VB.NET
Для осуществления поставленной задачи нужно последовательно использовать сразу три Win32:
|
ну... как бы... я все равно не понял о чем этот пример, функция CreateProcess это API-шный аналог NET-овского Process.Start ? Зачем?
мамочка... :o а вот есть еще такая "фитча" Console.Set(In/Out) занимается перенаправлением ввода\вывода в консоль там никак не замудрить... проблемма то как раз в том, чтобы найти вывод от "7z" Запущенного Process.Start, и перенаправить его в Console... не верится что такая "хрень" требует аш 3 функции API... кстати про Цитата:
Цитата:
сам сейчас копаюсь в закаулках vb.NET все что касает перенаправления ввода\вывода... есть способы клонировать поток, направить поток, но уже от запущенного процесса... а в моем случае его надо перенаправить перед его запуском - вот тут тупняк |
RUVATA кстати там автор поста и спрашивает, зачем вам Win32 вариант. Ответ прост, в своё время был не обнаружен в .NET 1.0 и началось.
CreatePipe как раз и создаёт перед запуском среду для перенаправления потока, вызванного по CreateProcess. Останется только считать его посредством ReadFile Возможно есть чисто .NET решения, однако при наличии WIN32 тратится на поиски может и не рационально. Вот пример использования всех трёх функций воедино. Код:
Public Structure SECURITY_ATTRIBUTES |
:o
без комментариев... у меня весь проект едва-ли половина описанного решения... |
А ТЕПЕРЬ описываю ПРАВИЛЬНЫЙ СПОСОБ перенаправления ввода\вывода любого процесса
в стандартные потоки используемые в консоли VS консольного приложения на vb.NET Код:
Admiral, научи код красиво выкладывать как у тя... все с цветом как надо |
RUVATA, отлично, если этот код то что нужно.
По подсветке код прошу сюда http://forum.oszone.net/thread-122281.html |
Время: 02:59. |
Время: 02:59.
© OSzone.net 2001-