2012-02-02 10 views
1

私は今Pythonを学んでいます。私は仕事に役立つスクリプトを書いています。考え方は:while True:クリップボードから文字列を読み込み、それを修正してクリップボードに戻します。sleep。だからどこにでも変更されたデータを貼り付けることができます。Pythonのクリップボードのトラブル

今、私はwin32clipboardモジュールを使用しています。第二の出力にスペースがある理由を私は理解できない

import win32clipboard 

def openClipboard(): 
    win32clipboard.OpenClipboard() 

def closeClipboard(): 
    try: 
     win32clipboard.CloseClipboard() 
    except Exception as e: 
     print(e) 

def getClipboardData(): 
    if win32clipboard.IsClipboardFormatAvailable(win32clipboard.CF_TEXT): 
     return win32clipboard.GetClipboardData() 
    else: 
     return None 

def setClipboardData(data): 
    win32clipboard.EmptyClipboard() 
    win32clipboard.SetClipboardData(win32clipboard.CF_TEXT, data) 

#assume that I copied '000' 

openClipboard() 
data = getClipboardData() 
print(data) //output: 000, so it's ok 
closeClipboard() 

openClipboard() 
win32clipboard.EmptyClipboard() 
setClipboardData(data + '123') 
closeClipboard() 

openClipboard() 
data = getClipboardData() 
print(data) //output: 0 0 0 1 2 3, but wtf? o_0 
closeClipboard() 

:私はこのコードを使用していますか?

+1

わかりませんが、おそらく入力の書式設定に問題があります。 SetClipboardTextを実行して、ウィット入力形式オプションを再生してください。 –

答えて

4

ralu、ありがとう。私はあなたの答えを得たと同時にそれを持っている。 win32clipboard.SetClipboardData(win32clipboard.CF_TEXT, data)の代わりにwin32clipboard.SetClipboardText(data)を使用しています。

+1

ユニコードを読み書きする必要がある場合は、 'win32clipboard.SetClipboardData(win32clipboard.CF_UNICODETEXT、data)'と 'win32clipboard.GetClipboardData(win32clipboard.CF_UNICODETEXT)'を使用してください。 – franza

+1

私はちょうど興味があります:なぜwin32clipboard.SetClipboardData(win32clipboard.CF_TEXT、data)が動作しないのですか?何が後ろの論理ですか? – JinSnow

関連する問題