2014-04-30 190 views
0

我想使用Java,Javascript,Python或使用Windows命令行將本地WAV文件複製到剪貼板。將WAV文件複製到剪貼板

基本上我可以通過任何方式將WAV文件複製到我的剪貼板,但這些都是我的首選語言。最好是Javascript。

請幫忙!

謝謝!

+0

是否要複製Wave文件(二進制數據)的內容或對文件本身的引用...? – MadProgrammer

+0

我相信我想要引用該文件。基本上我想複製一個文件到我的剪貼板,然後在Ableton Live中模擬一個「Ctrl + V」鍵擊,然後讓它實際上粘貼一個WAV文件到Live中。我不確定,但我認爲有一點我試圖複製原始WAV數據,但它不起作用 – blisstdev

+0

@blisstdev:你有沒有按照我的建議去做?什麼不行? – NorthCat

回答

1

你可以使用pywin32庫爲Python上Windows.Here是一些代碼,將文件複製到剪貼板,然後從剪貼板閱讀它:

import win32clipboard 

with open('input.wav','rb') as input: 
    wav = input.read() 

win32clipboard.OpenClipboard() 
win32clipboard.EmptyClipboard() 
win32clipboard.SetClipboardData(win32clipboard.CF_WAVE, wav) 

file_from_clipboard = win32clipboard.GetClipboardData(win32clipboard.CF_WAVE) 

with open('output.wav','wb') as output: 
    output.write(file_from_clipboard) 

如果要插入到剪貼板只路徑,你可以這樣做:

path = 'Path to wav file' 
win32clipboard.OpenClipboard() 
win32clipboard.EmptyClipboard() 
win32clipboard.SetClipboardText(path, win32clipboard.CF_TEXT) 

#Get text from clipboard 
path_from_clip = win32clipboard.GetClipboardData(win32clipboard.CF_TEXT) 

print path_from_clip 

或者更簡單地說,你可以使用pyperclip。 Pyperclip是用於訪問Python中剪貼板的跨平臺模塊:

import pyperclip 
pyperclip.copy('Path to wav file') 

#Get text from clipboard 
print pyperclip.paste() 
+0

感謝您的幫助! pyperclip和CF_TEXT方法都不會將文件路徑的文本複製到剪貼板上,而是以我想要的方式工作,雖然在某些情況下可能會有用。 CF_WAVE方法還沒有爲我工作,但我仍然試圖玩弄它,當我有時間... – blisstdev

+0

嘿,所以我終於有機會玩這個一堆,我仍然不能讓它工作。基本上,我檢查剪貼板查看器中複製到剪貼板的內容,當我在本地執行它時(即Ctrl + C),我得到類似於「E:\ DOCUME〜1 \ PROGRA〜1 \ Python \ PARTIALWAVEFILENAME〜1」的內容。 WAV「,而當我用字符串文件緩衝區(wav.open('path')。read())或bytearray(bytearray(wav.open('path')。read()) 「信息是二進制格式的,剪貼簿查看器不能顯示這種格式,」我不能將它粘貼到任何地方,任何其他想法? – blisstdev

+0

我想將這個文件粘貼到不同的應用程序,所以我想知道它是否有東西與剪貼板所有權有關?還是與緩衝區對象的「句柄」有關。 http://docs.activestate.com/activepython/2.5/pywin32/win32clipboard__SetClipboardData_meth.html – blisstdev