gpt4 book ai didi

vb.net - 如何知道剪贴板上的数据已经可以使用了?

转载 作者:行者123 更新时间:2023-12-05 07:07:31 25 4
gpt4 key购买 nike

我的代码复制一个表,处理复制的数据,复制另一个表,处理复制的数据等等......

问题是有时候有些表有很多数据需要很长时间才能复制,导致try/catch block 出错。

有没有办法在剪贴板上的数据准备好后才开始处理复制的数据?

   Private Sub Copy
Clipboard.Clear()
Try
Win32.SetCursorPos(200,200)
Win32.mouse_event(Win32.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
Win32.mouse_event(Win32.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
SendKeys.SendWait("^C")
Catch ex As Exception
Msgbox (ex.message)
End Try


'PROCESS THE COPIED DATA
Try
Dim clip() As String
Dim col() As String
clip = Clipboard.GetText().Split(Environment.NewLine)
col = clip(i).Split(vbTab)
'I test the data to see if it interests me
Catch ex As Exception

End Try


Clipboard.Clear()
Try
Win32.SetCursorPos(600,200)
Win32.mouse_event(Win32.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
Win32.mouse_event(Win32.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
SendKeys.SendWait("^C")
Catch ex As Exception
Msgbox (ex.message)
End Try



'PROCESS THE COPIED DATA


Clipboard.Clear()
Try
Win32.SetCursorPos(400,200)
Win32.mouse_event(Win32.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
Win32.mouse_event(Win32.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
SendKeys.SendWait("^C")
Catch ex As Exception
Msgbox (ex.message)
End Try


'PROCESS THE COPIED DATA


End Sub

最佳答案

根据@jmcilhinney 的评论,这是一个循环。没有 GoTo。在 If ErrorCount > 3 Then 中设置尝试次数。你在重复你的代码。通常不是维护的好主意。唯一改变的是左侧和顶部,所以我将它们作为参数传递。消息框的显示将提供暂停。您的 ProcessCopiedData 可能应该是从 Copy 子调用的单独子。

Private Sub Copy(left As Integer, top As Integer)
Dim ErrorCount As Integer
Do
Clipboard.Clear()
Try
Win32.SetCursorPos(left, top)
Win32.mouse_event(Win32.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
Win32.mouse_event(Win32.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
SendKeys.SendWait("^C")
ErrorCount = 0
Catch ex As Exception
ErrorCount += 1
MsgBox(ex.Message)
End Try
If ErrorCount > 3 Then
MessageBox.Show("Exceeded # of Trys.")
Exit Sub
End If
Loop Until ErrorCount < 1
'Process Copied Data
End Sub

用法...

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Copy(200, 200)
Copy(600, 200)
Copy(400, 200)
End Sub

关于vb.net - 如何知道剪贴板上的数据已经可以使用了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62119433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com