Dim x As Long, y As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Const KEYEVENTF_KEYUP = 2
Private Type POINTAPI
x As Long
y As Long
End Type
Dim p As POINTAPI
Dim t1 As Date, t2 As Date
Private Sub Command1_Click()
p.x = Val(Text1.Text)
p.y = Val(Text2.Text)
SetCursorPos p.x, p.y
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
Command2_Click
End Sub
Private Sub Command2_Click()
keybd_event vbKeyControl, 0, 0, 0
keybd_event vbKeyA, 0, 0, 0
keybd_event vbKeyControl, 0, KEYEVENTF_KEYUP, 0
keybd_event vbKeyA, 0, KEYEVENTF_KEYUP, 0
keybd_event vbKeyControl, 0, 0, 0
keybd_event vbKeyC, 0, 0, 0
keybd_event vbKeyControl, 0, KEYEVENTF_KEYUP, 0
keybd_event vbKeyC, 0, KEYEVENTF_KEYUP, 0
Text4.Text = Clipboard.GetText
End Sub
Private Sub Form_Load()
End Sub
Private Sub Timer1_Timer()
GetCursorPos p
Label1.Caption = p.x & "+" & p.y
End Sub
8 个解决方案
#1
Private Sub Command2_Click() keybd_event vbKeyControl, 0, 0, 0 keybd_event vbKeyA, 0, 0, 0 keybd_event vbKeyControl, 0, KEYEVENTF_KEYUP, 0 keybd_event vbKeyA, 0, KEYEVENTF_KEYUP, 0 keybd_event vbKeyControl, 0, 0, 0 keybd_event vbKeyC, 0, 0, 0 keybd_event vbKeyControl, 0, KEYEVENTF_KEYUP, 0 keybd_event vbKeyC, 0, KEYEVENTF_KEYUP, 0 Text4.Text = Clipboard.GetText End Sub
你这个keybd_event 是送到哪个窗口?Command2_Click() 的时候,command2变为了活动窗口,你你能选择和拷贝到什么呢?
要拷贝窗口控件的的数据,其实很简单clipboard.settext text1 即可,没必要那么复杂,发送一大堆按键消息
你这个keybd_event 是送到哪个窗口?Command2_Click() 的时候,command2变为了活动窗口,你你能选择和拷贝到什么呢?
要拷贝窗口控件的的数据,其实很简单clipboard.settext text1 即可,没必要那么复杂,发送一大堆按键消息
#2
就是打开一个文档,放在窗口右边,然后用这个程序自动执行ctrl+A、ctrl+c 复制数据到剪贴板。你以为我很傻吗?我只是想这种过程让程序来自动化执行
#3
就是打开一个文档,放在窗口右边,然后用这个程序自动执行ctrl+A、ctrl+c 复制数据到剪贴板。你以为我很傻吗?我只是想这种过程让程序来自动化执行
#4
呵呵,别这么说,没有人说你傻,除非。。。。
你这样做,目的无法达到,ctrl+A、ctrl+c是获得焦点的窗口才起作用,但是你的command一click,焦点就转移到按键上了,所以不能起到拷贝的效果
如果是word文档,或者excel文档,那么,你可以使用其自动化接口直接获取数据
#5
我在把焦点转移到command2之前,不是已经完成ctrl+A,ctrl+C,已经把内容复制到剪切板了
#6
你先别执行
Text4.Text = Clipboard.GetText
手动测试一下东西是否进到了剪贴板,我觉得你的东西没进去
你是在command2里面执行copy paste的,所以command2得到焦点在先。
Text4.Text = Clipboard.GetText
手动测试一下东西是否进到了剪贴板,我觉得你的东西没进去
你是在command2里面执行copy paste的,所以command2得到焦点在先。
#7
你先别执行
Text4.Text = Clipboard.GetText
手动测试一下东西是否进到了剪贴板,我觉得你的东西没进去
你是在command2里面执行copy paste的,所以command2得到焦点在先。
#8
你想要复制内容的文档是什么程序?
#1
Private Sub Command2_Click() keybd_event vbKeyControl, 0, 0, 0 keybd_event vbKeyA, 0, 0, 0 keybd_event vbKeyControl, 0, KEYEVENTF_KEYUP, 0 keybd_event vbKeyA, 0, KEYEVENTF_KEYUP, 0 keybd_event vbKeyControl, 0, 0, 0 keybd_event vbKeyC, 0, 0, 0 keybd_event vbKeyControl, 0, KEYEVENTF_KEYUP, 0 keybd_event vbKeyC, 0, KEYEVENTF_KEYUP, 0 Text4.Text = Clipboard.GetText End Sub
你这个keybd_event 是送到哪个窗口?Command2_Click() 的时候,command2变为了活动窗口,你你能选择和拷贝到什么呢?
要拷贝窗口控件的的数据,其实很简单clipboard.settext text1 即可,没必要那么复杂,发送一大堆按键消息
你这个keybd_event 是送到哪个窗口?Command2_Click() 的时候,command2变为了活动窗口,你你能选择和拷贝到什么呢?
要拷贝窗口控件的的数据,其实很简单clipboard.settext text1 即可,没必要那么复杂,发送一大堆按键消息
#2
就是打开一个文档,放在窗口右边,然后用这个程序自动执行ctrl+A、ctrl+c 复制数据到剪贴板。你以为我很傻吗?我只是想这种过程让程序来自动化执行
#3
Private Sub Command2_Click() keybd_event vbKeyControl, 0, 0, 0 keybd_event vbKeyA, 0, 0, 0 keybd_event vbKeyControl, 0, KEYEVENTF_KEYUP, 0 keybd_event vbKeyA, 0, KEYEVENTF_KEYUP, 0 keybd_event vbKeyControl, 0, 0, 0 keybd_event vbKeyC, 0, 0, 0 keybd_event vbKeyControl, 0, KEYEVENTF_KEYUP, 0 keybd_event vbKeyC, 0, KEYEVENTF_KEYUP, 0 Text4.Text = Clipboard.GetText End Sub
你这个keybd_event 是送到哪个窗口?Command2_Click() 的时候,command2变为了活动窗口,你你能选择和拷贝到什么呢?
要拷贝窗口控件的的数据,其实很简单clipboard.settext text1 即可,没必要那么复杂,发送一大堆按键消息
就是打开一个文档,放在窗口右边,然后用这个程序自动执行ctrl+A、ctrl+c 复制数据到剪贴板。你以为我很傻吗?我只是想这种过程让程序来自动化执行
#4
就是打开一个文档,放在窗口右边,然后用这个程序自动执行ctrl+A、ctrl+c 复制数据到剪贴板。你以为我很傻吗?我只是想这种过程让程序来自动化执行
呵呵,别这么说,没有人说你傻,除非。。。。
你这样做,目的无法达到,ctrl+A、ctrl+c是获得焦点的窗口才起作用,但是你的command一click,焦点就转移到按键上了,所以不能起到拷贝的效果
如果是word文档,或者excel文档,那么,你可以使用其自动化接口直接获取数据
#5
就是打开一个文档,放在窗口右边,然后用这个程序自动执行ctrl+A、ctrl+c 复制数据到剪贴板。你以为我很傻吗?我只是想这种过程让程序来自动化执行
呵呵,别这么说,没有人说你傻,除非。。。。
你这样做,目的无法达到,ctrl+A、ctrl+c是获得焦点的窗口才起作用,但是你的command一click,焦点就转移到按键上了,所以不能起到拷贝的效果
如果是word文档,或者excel文档,那么,你可以使用其自动化接口直接获取数据
我在把焦点转移到command2之前,不是已经完成ctrl+A,ctrl+C,已经把内容复制到剪切板了
#6
你先别执行
Text4.Text = Clipboard.GetText
手动测试一下东西是否进到了剪贴板,我觉得你的东西没进去
你是在command2里面执行copy paste的,所以command2得到焦点在先。
Text4.Text = Clipboard.GetText
手动测试一下东西是否进到了剪贴板,我觉得你的东西没进去
你是在command2里面执行copy paste的,所以command2得到焦点在先。
#7
你先别执行
Text4.Text = Clipboard.GetText
手动测试一下东西是否进到了剪贴板,我觉得你的东西没进去
你是在command2里面执行copy paste的,所以command2得到焦点在先。
#8
你想要复制内容的文档是什么程序?