标题: [原创] 批处理、VBS/JS写入剪切板改进 [打印本页]
作者: broly 时间: 2011-10-26 00:14 标题: 批处理、VBS/JS写入剪切板改进
大家先看此贴:
zqz版主的批处理、VBS剪贴板操作专题
http://bbs.bathome.net/viewthread.php?tid=8329&fromuid=25503
注意到原文的这部分:
其中:- mshta.exe "javascript:clipboardData.setData('text', 'www.bathome.net');close();"
复制代码
上面这种是用批处理写入文本到剪贴板- Set ws = CreateObject("WScript.Shell")
- ws.run "mshta ""javascript:clipboardData.setData('text', 'www.bathome.net');close();""", 0, true
- '最好设置等待标志为true,等待操作完成,保证后续语句能得到正确结果
- WScript.Echo CreateObject("htmlfile").parentWindow.clipboardData.getData("text")
复制代码
上面这种是用VBS写入文本到剪贴板
我先来不说这两种方法那里不妥先,大家先来测试下面的代码:
d盘下放一文本test.txt:- lineOne
- lineTwo
- lineThree
复制代码
然后运行下面的JS代码- var wsh = new ActiveXObject("WScript.Shell");
- var fso = new ActiveXObject("Scripting.FileSystemObject")
- var f = fso.OpenTextFile("d:\\test.txt", 1, false);
- var str = f.ReadAll();
- f.Close();
- wsh.run("mshta \"javascript:clipboardData.setData('text','" + str + "');close();\"",0);
- wsh = null;
- fso = null;
- f = null;
复制代码
运行结束说明已成功写入剪贴板了(有的人的电脑在运行过程中会出现提示,运行即可)
然后大家随便建一个记事本,粘贴,看有什么情况发生。
如果没有其他意外的话,你得到的文本应该是这样的:复制代码
没错,就是粘贴后没有换行的。现在我稍微把代码改进了:- var wsh = new ActiveXObject("WScript.Shell");
- var fso = new ActiveXObject("Scripting.FileSystemObject")
- var f = fso.OpenTextFile("d:\\test.txt", 1, false);
- var str = new String(f.ReadAll());
- f.Close();
- wsh.run("mshta \"javascript:clipboardData.setData('text','" + str.replace(/\n/g,"\\r\\n") + "');close();\"",0);
- wsh = null;
- fso = null;
- f = null;
复制代码
现在试试如何?
作者: wc726842270 时间: 2011-10-26 19:49
本帖最后由 wc726842270 于 2011-10-26 19:52 编辑
这应该是浏览器的原因吧,用WORD试一下吧
Word 版,读剪贴板:- Dim objWord
-
-
- Set objWord = CreateObject("Word.Application")
- 'objWord.Visible = True
- Set wdDoc = objWord.Documents.Add
-
- objWord.Selection.PasteAndFormat (wdFormatPlainText)
- objWord.Selection.WholeStory
- strBuf = objWord.Selection.Text
-
- objWord.Quit False
- Set objWord = Nothing
-
- WScript.Echo strBuf
复制代码
Word 版,写剪贴板:- Dim objWord
-
-
- Set objWord = CreateObject("Word.Application")
- 'objWord.Visible = True
- Set wdDoc = objWord.Documents.Add
-
- objWord.Selection.Text = "UMU WSH 30_SetClipData_Word.vbs"
- objWord.Selection.Copy
-
- objWord.Quit False
- Set objWord = Nothing
复制代码
原文:http://hi.baidu.com/umu618/blog/ ... 113bddb7fd487e.html
作者: zhangop9 时间: 2011-11-19 23:54
这个学习一下
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |