我正在使用WScript.shell activeX调用.exe文件.该文件是wkhtmltopdf.exe,用于将HTML页面转换为.pdf.当我在代码中调用C:\ wkhtmltopdf.exe时,一切运行良好.它运行然后正确关闭.但我的问题是您需要从cmd运行它,程序名称,然后是您正在阅读的HTML文件名,后跟您希望将其创建为的.pdf名称.
例如:
c:\wkhtmltopdf.exe c:\PDFTestPage.html c:\TEST.pdf
Run Code Online (Sandbox Code Playgroud)
这将调用wkhtmltopdf.exe,读取c:\ PDFTestPage.html,然后创建c:\ TEST.pdf.当我将其键入cmd时工作正常.
有没有人知道一个不仅运行和.exe但实际执行命令行的activeX?
这是我目前正在使用的代码.
function callShellApplication(){
var objShell = new ActiveXObject("WScript.shell");
objShell.run('"c:\wkhtmltopdf.exe"');
}
Run Code Online (Sandbox Code Playgroud)
真的希望它是以下.
function callShellApplication(){
var objShell = new ActiveXObject("WScript.shell");
objShell.run('"c:\wkhtmltopdf.exe c:\PDFTestPage.html c:\TEST.pdf"');
}
Run Code Online (Sandbox Code Playgroud)
另外注意.出于某种原因,我无法从绝对路径启动.exe.我必须移动到目录,然后只需键入wkhtmltopdf.exe.填充路径是:
C:\Program Files (x86)\wkhtmltopdf\wkhtmltopdf.exe
Run Code Online (Sandbox Code Playgroud)
我真的只使用UNIX,所以我不确定路径中的空格.我可以用空格做一个chdir,但我不能在执行时使用填充路径.任何信息都有帮助.先感谢您.
我想用FileSystemObject读取一个文件.我的代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Read json</title>
</head>
<body>
<script type="text/javascript">
function readFile(filename){
var fso = new ActiveXObject("Scripting.FileSystemObject");
var ForReading = 1;
var f1 = fso.OpenTextFile(filename, ForReading);
var text = f1.ReadAll();
f1.close();
return text;
}
myJSONText = "text.txt";
var myObject = readFile(myJSONText);//eval('(' + myJSONText + ')');
document.write(myObject.name);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我可以使用以下代码在 Chrome 中成功读取剪贴板图像:
data = event.originalEvent.clipboardData;
for (var i = 0; i<data.items.length; i++){
var item = data.items[i];
if (item.type === 'image/png'){
itemFound = true;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
然而,这种方法在 IE 中不起作用。微软发布了一篇关于在 IE 中粘贴的博客(http://blogs.msdn.com/b/ie/archive/2013/10/24/enhanced-rich-editing-experiences-in-ie11.aspx)。该博客指出我应该能够使用以下代码行
var fileList = clipboardData.files;
Run Code Online (Sandbox Code Playgroud)
然而,fileList 总是返回为空。
有谁知道在 IE 中访问剪贴板图像的方法?我能够很好地阅读文本,而不能阅读图像。
编者注:
虽然这个问题具体是关于将文件引用复制到剪贴板,但它的通用标题导致了关于如何复制/获取文本的答案 .
作为Windows Emacs的用户经常谁在邮件附加的文件,我一直在寻找一个实用程序来复制一个文件(而不是其内容)到剪贴板,就像Windows资源管理器确实在righclick /份).
我刚刚在SO上找到了这个,它在一个小程序中使用System.Windows.Forms.Clipboard`来做到这一点.但它是在C#中,我没有立即访问编译器.所以我想知道这是否可以做到以及如何做到.
我看到了一些像这样的引用,在VBScripting中无法访问剪贴板,但msdn 显示了VB的文档,所以我冒着风险提问.
我以前从来没有写过VBScript,但我在尝试之前尝试了一些事情,首先是运行一个粘贴了"Hello world"的副本,然后是各种组合CreateObject等.
更新:我需要打电话Clipboard.SetFileDropList,所以我认为我不能ClipboardData按照答案的建议使用它,它没有这个方法.
访客更新
我最终使用的解决方案是编译C#自己,我不知道我已经有了编译器.
访问者 /sf/answers/2097428791/的另一个更新是我现在正在使用的,非常愉快.