python剪貼簿操作 python 操作剪下板

2021-10-18 15:00:21 字數 2268 閱讀 3346

有時候寫指令碼的時候會有作業系統剪下板的需求,就是

獲取剪下板中的字串

清空剪下板

向剪下板中寫入字串

方法包括使用 tkinter , ctypes 這兩個 python 標準庫, 或者安裝 qt 等第三方庫來操作剪下板。

ctypes 操作剪下板

先寫 windows 系統下 ctypes 庫如何操作剪下板吧。ctypes 這個庫主要用於呼叫動態鏈結函式或共享庫,使用起來比較難。

操作剪下板:讀取剪下板的字串;清空剪下板;向剪下板中寫入字串(只能寫入 ascii 字元)。

win10, python3,

from ctypes import *

user32 = windll.user32

kernel32 = windll.kernel32

def get_clipboard():

user32.openclipboard(c_int(0))

contents = c_char_p(user32.getclipboarddata(c_int(1))).value

user32.closeclipboard()

return contents

def empty_clipboard():

user32.openclipboard(c_int(0))

user32.emptyclipboard()

user32.closeclipboard()

def set_clipboard(data):

user32.openclipboard(c_int(0))

user32.emptyclipboard()

alloc = kernel32.globalalloc(0x2000, len(bytes(data, encoding='utf_8'))+1)

# alloc = kernel32.globalalloc(0x2000, len(data)+1)

lock = kernel32.globallock(alloc)

cdll.msvcrt.strcpy(c_char_p(lock),bytes(data, encoding='utf_8'))

# cdll.msvcrt.strcpy(c_char_p(lock), data)

kernel32.globalunlock(alloc)

user32.setclipboarddata(c_int(1),alloc)

user32.closeclipboard()

呼叫 get_clipboard() 獲取剪下板資料

if __name__ == '__main__':

# 獲取剪下板內字串

text_raw = get_clipboard()

print(' '.format(text_raw, type(text_raw)))

try:

text_str = text_raw.decode('utf_8')

print(' '.format(text_str, type(text_str)))

except:

print('剪下板為空。')

剪下板為空時,輸出結果為:

none

剪下板為空。

複製乙個字串後執行上面的測試**(在這裡我複製了 python ),輸出結果為:

b'python'

python

剪下板中無資料時,get_clipboard() 返回 none。

當剪下板中有資料時,get_clipboard() 將其以 bytes 格式返回;

使用 text_str = text_raw.decode('utf_8')將 bytes 轉化為 str。

呼叫 empty_clipboard() 清空剪下板

if __name__ == '__main__':

# 清空剪下板

empty_clipboard()

text = get_clipboard()

print(text)

複製乙個字串後執行**,輸出結果為:

none

呼叫 set_clipboard() 寫入剪下板

if __name__ == '__main__':

# 向剪下板內寫入 ascii 字串

set_clipboard('py!')

text = get_clipboard()

print(text)

輸出結果為:

b'py!'

相關完整**在 github 上。

操作剪貼簿

剪貼簿 一 將資料送到剪貼簿 1 記憶體配置 hglobal hglobal hglobal globalalloc ghnd gmem share,lstrlen ptext 1 sizeof tchar 為什麼不用malloc 在windows中執行的應用程式之間必須要共享剪貼簿所儲存的記憶體塊...

VC 剪貼簿操作

本文主要介紹了 vc mfc 中如下內容的剪貼簿操作 1 文字內容的操作2 wmf資料的操作 3 點陣圖的操作 4 設定使用自定義格式 5 感知剪貼簿內容的改變 6 自動將資料貼上到另一應用程式視窗 一 文字內容的操作 下面的 示範了如何將文字內容複製到剪貼簿 unicode 編碼的先轉化為 asc...

Visual C 剪貼簿操作

visual c 剪貼簿操作 2008 07 30 15 01 visual c 剪貼簿操作 文章摘要 1 文字內容的操作 2 wmf資料的操作 3 點陣圖的操作 4 設定使用自定義格式 5 感知剪貼簿內容的改變 6 自動將資料貼上到另一應用程式視窗 一 如何將文字內容複製到剪貼簿 cstring ...