如何在 vb .Net 中执行每一行时增加 progressBar
how to Increment progressBar with each line execute in vb .Net
我要执行每行代码一个百分比增加进度条
我是这样做的:
If System.Diagnostics.Process.GetProcessesByName("SubtitleEdit").Length >= 1 Then
For Each ObjProcess As Process In Process.GetProcessesByName("SubtitleEdit")
AppActivate(ObjProcess.Id)
AutoIt.Send("{F1}")
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
AutoIt.Send("^{u}")
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
AutoIt.Send("+{ENTER}")
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
AutoIt.Send("^{u}")
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
AutoIt.Send("^{ENTER}")
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
AutoIt.Send("^{s}")
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
Next
End If
还有其他方法吗?
因为我觉得我的做法很可笑,很乏味。
jmc 表示如下:
If System.Diagnostics.Process.GetProcessesByName("SubtitleEdit").Length >= 1 Then
For Each ObjProcess As Process In Process.GetProcessesByName("SubtitleEdit")
AppActivate(ObjProcess.Id)
Dim toSend = {"{F1}","^{u}","+{ENTER}","^{u}","^{ENTER}","^{s}"}
For Each s in toSend
AutoIt.Send(s)
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
Next s
Next
End If
或许可以将这 3 行变成一个方法:
Sub X(s As String)
AutoIt.Send(s)
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
End Sub
那么你可以:
If System.Diagnostics.Process.GetProcessesByName("SubtitleEdit").Length >= 1 Then
For Each ObjProcess As Process In Process.GetProcessesByName("SubtitleEdit")
AppActivate(ObjProcess.Id)
Dim toSend = {"{F1}", "^{u}", "+{ENTER}", "^{u}", "^{ENTER}", "^{s}"}.ToList()
toSend.ForEach(AddressOf X)
Next
End If
我要执行每行代码一个百分比增加进度条
我是这样做的:
If System.Diagnostics.Process.GetProcessesByName("SubtitleEdit").Length >= 1 Then
For Each ObjProcess As Process In Process.GetProcessesByName("SubtitleEdit")
AppActivate(ObjProcess.Id)
AutoIt.Send("{F1}")
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
AutoIt.Send("^{u}")
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
AutoIt.Send("+{ENTER}")
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
AutoIt.Send("^{u}")
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
AutoIt.Send("^{ENTER}")
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
AutoIt.Send("^{s}")
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
Next
End If
还有其他方法吗?
因为我觉得我的做法很可笑,很乏味。
jmc 表示如下:
If System.Diagnostics.Process.GetProcessesByName("SubtitleEdit").Length >= 1 Then
For Each ObjProcess As Process In Process.GetProcessesByName("SubtitleEdit")
AppActivate(ObjProcess.Id)
Dim toSend = {"{F1}","^{u}","+{ENTER}","^{u}","^{ENTER}","^{s}"}
For Each s in toSend
AutoIt.Send(s)
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
Next s
Next
End If
或许可以将这 3 行变成一个方法:
Sub X(s As String)
AutoIt.Send(s)
ItemRemoveProgress.GunaCircleProgressBar1.Increment(1)
ItemRemoveProgress.Update()
End Sub
那么你可以:
If System.Diagnostics.Process.GetProcessesByName("SubtitleEdit").Length >= 1 Then
For Each ObjProcess As Process In Process.GetProcessesByName("SubtitleEdit")
AppActivate(ObjProcess.Id)
Dim toSend = {"{F1}", "^{u}", "+{ENTER}", "^{u}", "^{ENTER}", "^{s}"}.ToList()
toSend.ForEach(AddressOf X)
Next
End If