如何用 batch 取得剪貼簿的內容 - Windows

Tom avatar
By Tom
at 2011-04-01T18:45

Table of Contents

(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 取得及設定剪貼簿的文字內容?

查了幾個小時依然一無所獲...

--
Tags: Windows

All Comments

win7裡面沒有 1440*900解析度

Puput avatar
By Puput
at 2011-04-01T16:53
作者 bunnyfish (Henne) 看板 Trace 你們好: 我昨天幫電腦灌了Win7的企業版 但是我找不到1440*900的 螢幕解析度 顯示器名稱 ViewSonic VA1912w Series ...

Win7 x64 Ult右下的氣泡訊息提示消失了

Carol avatar
By Carol
at 2011-04-01T15:45
※ 引述《SCCKai (SCCKai)》之銘言: : 自從上禮拜買了一個USB無線網卡 裝完driver後 : 發現原本右下角會出現的一些氣泡訊息提示都不會出現了 : ex.原本插入USB隨身碟時右下會出現USB裝置的圖示 : 點選那個圖示右鍵退出後原本都會出現and#34;你現在可以放心移除裝置and#3 ...

win7 x64 和 photoimpact X3 的相容?

Valerie avatar
By Valerie
at 2011-04-01T13:53
日前將電腦升級到 Win7 x64 Ram 6G也換了新硬碟, 卻發現photoimpact X3跑得比當初只有2G的電腦還要慢, 常常lag到「沒有回應」, 想請問一下同樣用win7 x64 的版友是否有這樣的問題? 這是軟體相容性的問題還是? 上corel官網看更新檔好像也沒有相關的問題, 謝謝!^^ ...

兩張網卡能否設定外部網路的優先權?

Adele avatar
By Adele
at 2011-04-01T09:08
我的PC有一張網卡,一張無線USB網卡, 網卡是走內部網路用的,但是也可以上internet, 另一張USB網卡就只是上internet使用, 有沒有辦法在不拿掉gateway情況下, 每次連到internet都先判斷USB在判斷PCI? 至少要可應用瀏覽器. - ...

學生專案之下載會更新嗎?

Hamiltion avatar
By Hamiltion
at 2011-04-01T02:16
如題 像是sp1這種大更新 會提供整合版下載嗎? 現在網路上似乎都還是之前MSDN流出的旗艦版... 雖然說刪個檔就能裝專業版...帶是我還是想要原汁原味的專業版SP1... - ...