AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
建立一个按钮Command1,以下范例是将"C:\\a.txt"复制到剪切板,要测试请先建立这个文件。 ~~~vbs Option Explicit Private Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function EmptyClipboard Lib "user32" () As Long Private Declare Function CloseClipboard Lib "user32" () As Long Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long Private Const GMEM_MOVEABLE = &H2 Private Const GMEM_ZEROINIT = &H40 Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long Private Const CF_HDROP = &HF Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Private Type POINTAPI X As Long Y As Long End Type Private Type DROPFILES pFiles As Long pT As POINTAPI fNC As Long fWide As Long End Type Private Sub Command1_Click() Dim FileName As String FileName = "C:\a.txt" If Dir(FileName) = "" Then Exit Sub FileName = FileName & vbNullChar & vbNullChar Call FileToClipboard(FileName) End Sub Private Sub FileToClipboard(ByVal FileName As String) Dim dFiles As DROPFILES Dim hMem As Long, MemPtr As Long, Len1 As Long, Len2 As Long If OpenClipboard(Me.hWnd) = 0 Then Exit Sub Call EmptyClipboard Len1 = Len(dFiles) Len2 = LenB(StrConv(FileName, vbFromUnicode)) hMem = GlobalAlloc(GMEM_MOVEABLE Or GMEM_ZEROINIT, Len1 + Len2) MemPtr = GlobalLock(hMem) dFiles.pFiles = Len1 Call CopyMemory(ByVal MemPtr, dFiles, Len1) Call CopyMemory(ByVal (MemPtr + Len1), ByVal FileName, Len2) Call GlobalUnlock(hMem) Call SetClipboardData(CF_HDROP, hMem) Call CloseClipboard End Sub ~~~