第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用Python將字符串復(fù)制到Windows上的剪貼板?

如何使用Python將字符串復(fù)制到Windows上的剪貼板?

牛魔王的故事 2019-07-23 10:42:54
如何使用Python將字符串復(fù)制到Windows上的剪貼板?我正在嘗試創(chuàng)建一個(gè)基本的Windows應(yīng)用程序,用戶輸入構(gòu)建一個(gè)字符串,然后將其添加到剪貼板。如何使用Python將字符串復(fù)制到剪貼板?
查看完整描述

3 回答

?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊

其實(shí),pywin32并且ctypes似乎是這個(gè)簡(jiǎn)單的任務(wù)矯枉過正。Tkinter是一個(gè)跨平臺(tái)的GUI框架,默認(rèn)情況下附帶Python,并具有剪貼板訪問方法以及其他很酷的東西。

如果只需要將一些文本放到系統(tǒng)剪貼板中,這樣就可以了:

from Tkinter import Tkr = Tk()r.withdraw()r.clipboard_clear()r.clipboard_append('i can has clipboardz?')r.update() # now it stays on the clipboard after the window is closedr.destroy()

這就是全部,不需要使用特定于平臺(tái)的第三方庫。

如果您使用的是Python 3,請(qǐng)?zhí)鎿QTKintertkinter


查看完整回答
反對(duì) 回復(fù) 2019-07-23
?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

我沒有解決方案,只是一種解決方法。

Windows Vista以后有一個(gè)內(nèi)置的命令clip,它從命令行獲取命令的輸出并將其放入剪貼板。例如,ipconfig | clip。

所以我使用os模塊創(chuàng)建了一個(gè)函數(shù),該模塊接受一個(gè)字符串并使用內(nèi)置的Windows解決方案將其添加到剪貼板。

import osdef addToClipBoard(text):
    command = 'echo ' + text.strip() + '| clip'
    os.system(command)# ExampleaddToClipBoard('penny lane')# Penny Lane is now in your ears, eyes, and clipboard.

然而,正如之前在評(píng)論中所指出的,這種方法的一個(gè)缺點(diǎn)是該echo命令會(huì)自動(dòng)在文本末尾添加換行符。要避免這種情況,您可以使用命令的修改版本:

def addToClipBoard(text):
    command = 'echo | set /p nul=' + text.strip() + '| clip'
    os.system(command)

如果您使用的是Windows XP,它將按照從Windows XP Pro的命令提示符復(fù)制并粘貼到剪貼板中的步驟進(jìn)行操作。


查看完整回答
反對(duì) 回復(fù) 2019-07-23
?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

您還可以使用ctypes進(jìn)入Windows API并避免使用龐大的pywin32軟件包。這就是我使用的(借口可憐的風(fēng)格,但想法就在那里):

import ctypes# Get required functions, strcpy..strcpy = ctypes.cdll.msvcrt.strcpy
ocb = ctypes.windll.user32.OpenClipboard    # Basic clipboard functionsecb = ctypes.windll.user32.EmptyClipboardgcd = ctypes.windll.user32.GetClipboardDatascd = ctypes.windll.user32.SetClipboardDataccb = ctypes.windll.user32.CloseClipboardga = ctypes.windll.kernel32.GlobalAlloc    # Global memory allocationgl = ctypes.windll.kernel32.GlobalLock     # Global memory Lockinggul = ctypes.windll.kernel32.GlobalUnlockGMEM_DDESHARE = 0x2000def 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 datadef 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()


查看完整回答
反對(duì) 回復(fù) 2019-07-23
  • 3 回答
  • 0 關(guān)注
  • 2771 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)