RUVATA
16-01-2011, 13:51
Всем доброго времени суток... (язык 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
Все равно это чертово cmd-шное окно мелькает
Как быть? Shell не пробовал, да и не катит... мне надо процесс как объект юзать.
Столкнулся с тривиальной казалось бы проблемой, но те методы которые вроде бы должны выполнять эту функцию не дают ни какого эффекта...
Суть: моей программой используется внешняя программа (утилита 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
Все равно это чертово cmd-шное окно мелькает
Как быть? Shell не пробовал, да и не катит... мне надо процесс как объект юзать.