![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] Скрытый запуск внешнего консольного приложения |
|
.NET - [решено] Скрытый запуск внешнего консольного приложения
|
![]() Старожил Сообщения: 301 |
Всем доброго времени суток... (язык vb.NET)
Столкнулся с тривиальной казалось бы проблемой, но те методы которые вроде бы должны выполнять эту функцию не дают ни какого эффекта... Суть: моей программой используется внешняя программа (утилита Handle.exe от Windows SysInternals), я передаю ей некие аргументы, а с ее StandartOutput читаю к себе в переменную. "Умный справко" говорит: Для запуска процесса, не отображая ее на экране, предварительно укажите ProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden ну так... вот и ни хрена ничего не скрывается Public Function UseHandle(ByVal Arg As String) Dim my_handle As New Process Dim myProcessStartInfo As New ProcessStartInfo(System.Windows.Forms.Application.StartupPath & "\Handle.exe") myProcessStartInfo.UseShellExecute = False myProcessStartInfo.RedirectStandardOutput = True myProcessStartInfo.Arguments = Arg myProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden my_handle.StartInfo = myProcessStartInfo my_handle.Start() my_handle.WaitForExit() Return (my_handle.StandardOutput.ReadToEnd) my_handle.Close() End Function Как быть? Shell не пробовал, да и не катит... мне надо процесс как объект юзать. |
|
------- Отправлено: 13:51, 16-01-2011 |
Необычный Сообщения: 4466
|
Профиль | Сайт | Отправить PM | Цитировать RUVATA, может имеет смысл сначала сделать окно невидимым, а уже потом запускать?
|
------- Отправлено: 14:29, 16-01-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать RUVATA если не получается .NET вариант то тогда стоит API вариант запуск приложения с параметром /?
По текущему коду есть замечания.
|
Отправлено: 17:36, 16-01-2011 | #3 |
![]() Старожил Сообщения: 301
|
Профиль | Отправить PM | Цитировать Цитата Admiral:
PS: проблема решена... использованием свойства ProcessStartInfo.CreateNoWindow = True которое требует определенного значения другого свойства ProcessStartInfo.UseShellExecute = False (обязательно) соответственно свойство ProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden (действует только для программ с Windows.Forms интерфейсом) вот полностью рабочий пример функции вызывающей handle из директории с программой... handle отрабатывает скрыто. передаваемый аргумент - строка (целевая директория) возвращаемое значение - строка (вывод handle.exe) Public Function UseHandle(ByVal Arg As String) Dim my_handle As New Process Dim myProcessStartInfo As New ProcessStartInfo(System.Windows.Forms.Application.StartupPath & "\Handle.exe") Dim HandleText As String myProcessStartInfo.UseShellExecute = False myProcessStartInfo.RedirectStandardOutput = True myProcessStartInfo.Arguments = Arg myProcessStartInfo.CreateNoWindow = True my_handle.StartInfo = myProcessStartInfo my_handle.Start() my_handle.WaitForExit() HandleText = my_handle.StandardOutput.ReadToEnd my_handle.Close() Return (HandleText) End Function |
|
------- Отправлено: 08:43, 17-01-2011 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
2008 R2 - Проблема при запуске службой консольного приложения | kivenko | Windows Server 2008/2008 R2 | 1 | 07-08-2012 09:10 | |
C/C++ - [решено] Запуск консольного приложения с помощью bat-файла | котвася | Программирование и базы данных | 4 | 23-10-2010 20:40 | |
Автозагрзка консольного приложения, без входа в систему | Solker | Microsoft Windows NT/2000/2003 | 2 | 29-12-2009 17:23 | |
MFC - Какие установки в VS2005 для консольного приложения с исключением в связях mfc80u.dll | Viacheslav8 | Программирование и базы данных | 2 | 05-05-2009 17:25 | |
[решено] окно консольного приложения | ogronom | Microsoft Windows 2000/XP | 2 | 12-09-2006 11:27 |
|