在VB中按下一个按钮就会自动把黏贴板里面的文字复制到word、excel里面的光标所在处,能不能实现这个功能?
麻烦大师们贴出代码,严重感谢!!!!SendKeys"^V",True不行,因为光标被VB窗口占用了,无法粘贴到word里面去...
麻烦大师们贴出代码,严重感谢!!!!
SendKeys "^V", True 不行,因为光标被VB窗口占用了,无法粘贴到word里面去 展开
SendKeys "^V", True 不行,因为光标被VB窗口占用了,无法粘贴到word里面去 展开
展开全部
用VB中实现复制、粘贴:
方法一:用剪贴板操作
Clipboard.SetText abc
把字符串复变量abc中的字符串制到剪贴板
def = Clipboard.GetText
把剪贴板中的字符串赋值个字符串变量def
方法二:发送键盘指令
调用SendKeys,向当前活动窗口发送键盘指令
SendKeys "^C", True
表示向当前活动窗口发送键盘指令 Ctrl + C ,其中,“^”符号代表Ctrl按键。这个可用于复制。
SendKeys "^V", True
表示向当前活动窗口发送键盘指令 Ctrl + V ,其中,“^”符号代表Ctrl按键。这个可用于粘贴。
注意:在发送键盘指令之前,先让Word取得焦点,成为当前活动窗口。
如何让Word取得焦点,那就使用Windows API函数。在VB中调用Windows API函数要先声明:
需要两个声明:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long
然后,调用:
Dim hWnd As Long ' 窗口句柄
hWnd = FindWindow(vbNullString, "这里是程序的标识符") ' 取得窗口句柄
SetForegroundWindow hWnd ' 设置为活动窗口
经过我测试,以下代码可以向记事本粘贴文字:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
Dim hWnd As Long ' 窗口句柄
hWnd = FindWindow("notepad", vbNullString) ' 获得记事本的窗口句柄,notepad是记事本
SetForegroundWindow hWnd ' 把记事本设置为当前活动窗口
Sleep 100 ' 延时100毫秒(把记事本设置为当前窗口需要时间)
SendKeys "^V", True ' 发送键盘指令 Ctrl +V ,实现“粘贴”
End Sub
方法一:用剪贴板操作
Clipboard.SetText abc
把字符串复变量abc中的字符串制到剪贴板
def = Clipboard.GetText
把剪贴板中的字符串赋值个字符串变量def
方法二:发送键盘指令
调用SendKeys,向当前活动窗口发送键盘指令
SendKeys "^C", True
表示向当前活动窗口发送键盘指令 Ctrl + C ,其中,“^”符号代表Ctrl按键。这个可用于复制。
SendKeys "^V", True
表示向当前活动窗口发送键盘指令 Ctrl + V ,其中,“^”符号代表Ctrl按键。这个可用于粘贴。
注意:在发送键盘指令之前,先让Word取得焦点,成为当前活动窗口。
如何让Word取得焦点,那就使用Windows API函数。在VB中调用Windows API函数要先声明:
需要两个声明:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long
然后,调用:
Dim hWnd As Long ' 窗口句柄
hWnd = FindWindow(vbNullString, "这里是程序的标识符") ' 取得窗口句柄
SetForegroundWindow hWnd ' 设置为活动窗口
经过我测试,以下代码可以向记事本粘贴文字:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
Dim hWnd As Long ' 窗口句柄
hWnd = FindWindow("notepad", vbNullString) ' 获得记事本的窗口句柄,notepad是记事本
SetForegroundWindow hWnd ' 把记事本设置为当前活动窗口
Sleep 100 ' 延时100毫秒(把记事本设置为当前窗口需要时间)
SendKeys "^V", True ' 发送键盘指令 Ctrl +V ,实现“粘贴”
End Sub
展开全部
能实现这个功能。至于怎么实现你没问。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那么麻烦干嘛,直接按Ctrl+V不就行了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询