2014-04-30 128 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