用什么等待好?多线程工作的不同步问题.
我有一个自动压缩和上传到服务器的程序要写:For n = 1 To 207 '这儿是把所有的文件都循环一下
If Check1(n - 1).Visible And Check1(n - 1).Value = 1 Then '这儿是被选定的文件
rarpath = App.Path + "\winrar.exe" 'winrar的路径
ShellEx rarpath & " a -r " & App.Path & "\" & Date & ".rar " & " " & App.Path & "\" & Check1(n - 1).ToolTipText & "\*.* " '压缩选定的文件
End If
Next
'这儿结束后有一个问题了,就是压缩会很慢,程序完成时压缩还在进行中,用什么样的等待让它往后的运行正常进行?
path1 = App.Path & "\" & Date & ".rar" '需要上传的压缩文件路径
Set vDoc = WebBrowser1.Document
For i = 0 To vDoc.All.Length - 1 '检测所有标签
If UCase(vDoc.All(i).tagName) = "INPUT" Then '找到input标签
Set vtag = vDoc.All(i)
If vtag.Name = "file1" Then
Clipboard.SetText path1
vtag.Focus
Call keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0)
Call keybd_event(vbKeyV, MapVirtualKey(vbKeyV, 0), 0, 0)
Call keybd_event(vbKeyV, MapVirtualKey(vbKeyV, 0), KEYEVENTF_KEYUP, 0)
Call keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), KEYEVENTF_KEYUP, 0) '这四句把文件复制到上传文件框中
End If
End If
Next
'到这儿结束都没有问题,也就是差最后一步提交了,但如果把下面标记掉的语句打开,复制就不会完成,也就是提交时会是一个空的内容.用什么样的等待让它能提交掉?
'For i = 0 To vDoc.All.Length - 1 '检测所有标签
'If UCase(vDoc.All(i).tagName) = "INPUT" Then '找到input标签
' Set vtag = vDoc.All(i)
' If vtag.Name = "Submit" Then
' vtag.Select '光标指定
' vtag.Click '点击提交了
' End If
'End If
'Next
'如果标记掉上面内容,文件框内有内容,如果不标记掉就没有内容.