Узнать, сколько по времени выполняется процесс - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

есть скрипт на powershell. запускаю его по кнопке:
Листинг программы
  1. Dim P As New Process
  2. With P
  3. .StartInfo.FileName = "powershell.exe"
  4. .StartInfo.Arguments = "d:\скрипты\NetWorkSkan.ps1"
  5. .Start()
  6. .WaitForExit()
  7. MsgBox("Done")
  8. End With
собственно 2 вопроса: 1. Как скрыть окно выполнения скрипта.(что бы не было по верх всех окон) 2. необходимо создать таймер выполнения этого процесса в label1 формата hh:mm:ss. Так как скрипт отрабатывает долго, хочется знать сколько по времени он будет щелкать. Понятно, что обратный отсчет не организовать никак, поэтому прошу помощи в написании времени выполнения скрипта. заранее спасибо за помощь!!!

Решение задачи: «Узнать, сколько по времени выполняется процесс»

textual
Листинг программы
  1.     Dim _startTime As DateTime
  2.     Const IntervalFormat As String = "mm':'ss"
  3.  
  4.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  5.         Button1.Enabled = False
  6.         Label1.Text = TimeSpan.Zero.ToString(IntervalFormat)
  7.         Label1.Visible = True
  8.         Timer1.Enabled = True
  9.         _startTime = DateTime.Now
  10.         BackgroundWorker1.RunWorkerAsync()
  11.     End Sub
  12.  
  13.     Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
  14.         Using proc As New Process
  15.             proc.StartInfo.FileName = "powershell.exe"
  16.             proc.StartInfo.Arguments = "d:\скрипты\NetWorkSkan.ps1"
  17.             proc.StartInfo.CreateNoWindow = True
  18.             proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
  19.             proc.Start()
  20.             proc.WaitForExit()
  21.         End Using
  22.     End Sub
  23.  
  24.     Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
  25.         Button1.Enabled = True
  26.         Label1.Visible = False
  27.         Timer1.Enabled = False
  28.     End Sub
  29.  
  30.     Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  31.         Label1.Text = (DateTime.Now - _startTime).ToString(IntervalFormat)
  32.     End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы