[問題] 如何用 batch 取得剪貼簿的內容

看板Windows作者 (奔跑的蝸牛)時間13年前 (2011/04/01 18:45), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
(OS是XP) 這個問題困擾我蠻久了 我常常寫小程式來自動化一些任務 很多工作只需 batch (.bat) 即可完成 但唯有剪貼簿的操作要靠其他程式語言或外部程式 例如... 1. 用vbs清空剪貼簿 Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate("about:blank") objIE.document.parentwindow.clipboardData.SetData "text", "" objIE.Quit 2. 用 clip.exe 清空剪貼簿 %windir%\system32\cmd.exe /c "echo off | clip" 3. 用 python 清空剪貼簿 import ctypes #Get required functions, strcpy.. strcpy = ctypes.cdll.msvcrt.strcpy ocb = ctypes.windll.user32.OpenClipboard #Basic Clipboard functions ecb = ctypes.windll.user32.EmptyClipboard gcd = ctypes.windll.user32.GetClipboardData scd = ctypes.windll.user32.SetClipboardData ccb = ctypes.windll.user32.CloseClipboard ga = ctypes.windll.kernel32.GlobalAlloc # Global Memory allocation gl = ctypes.windll.kernel32.GlobalLock # Global Memory Locking gul = ctypes.windll.kernel32.GlobalUnlock GMEM_DDESHARE = 0x2000 def Get( ): ocb(None) # Open Clip, Default task pcontents = gcd(1) # 1 means CF_TEXT.. too lazy to get the token thingy ... data = ctypes.c_char_p(pcontents).value #gul(pcontents) ? ccb() return data def Paste(data): ocb(None) # Open Clip, Default task ecb() hCd = ga( GMEM_DDESHARE, len( bytes(data,"ascii") )+1 ) pchData = gl(hCd) strcpy(ctypes.c_char_p(pchData),bytes(data,"ascii")) gul(hCd) scd(1,hCd) ccb() ocb(None) ecb() 想請問的是 在不使用外部程式(clip, nircmd, ...)或其他程式語言(vb, c/c++, ...)的情況下 該如何利用 batch 取得及設定剪貼簿的文字內容? 查了幾個小時依然一無所獲... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.46 Holocaust123:轉錄至看板 EZsoft 04/01 18:47
文章代碼(AID): #1DbQozf0 (Windows)