在封装读取剪贴板的时候,执行测试代码时遇到个错误:
pywintypes.error: (1418, 'GetClipboardData', 'xcfxdfxb3xccxc3xbbxd3xd0xb4xf2xbfxaaxb5x
代码:
#encoding=utf-8
import win32clipboard as w
import win32con
import time
class Clipboard(object):
#模拟Windows设置剪贴板
#读取剪贴板
@staticmethod
def getText():
#打开剪贴板
w.OpenClipboard()
#获取剪贴板中的数据
content=w.GetClipboardData(win32con.CF_TEXT)
#关闭剪贴板
w.CloseClipboard()
#返回剪贴板数据
return content
#设置剪贴板内容
@staticmethod
def setText(aString):
#打开剪贴板
w.OpenClipboard()
#清空剪贴板
w.EmptyClipboard()
#将数据aString写入剪贴板
w.SetClipboardData(win32con.CF_UNICODETEXT,aString)
#关闭剪贴板
w.CloseClipboard()
if __name__=='__main__':
Clipboard.setText(u'hey buddy!')
print Clipboard.getText()
然后在网上查,是因为设置了剪贴板内容之后,马上就读取剪贴板内容的话,可能这时候剪贴板的内容还没设置好,读取不到内容就会报错,
需要在设置剪贴板之后等几秒钟。
测试改成:
if __name__=='__main__':
Clipboard.setText(u'hey buddy!')
#time.sleep(3)
print Clipboard.getText()
结果:
C:Python27python.exe D:/test/hybrid_version2/util/keyboard.py
hey buddy!
Process finished with exit code 0