2016-08-15 86 views
1

我有一个文本htm文件保存在本地机器上,我想用AutoHotKey脚本将它的内容复制到剪贴板中。我想:将HTM文件的内容复制到剪贴板

FileRead, Clipboard, *c C:\Users\%A_UserName%\AppData\Local\Temp\file.htm 

UrlDownloadToFile, C:\Users\%A_UserName%\AppData\Local\Temp\file.htm, NewTextFile.txt 

但他们都没有工作。 唯一的解决办法我能想到的,是用来打开浏览器的htm文件:

Run, C:\Users\%A_UserName%\AppData\Local\Temp\file.htm 

按Ctrl +一个未来按Ctrl +ç这不是理想的。

+1

为什么'* c'选项? 'FileRead,Clipboard,C:\ Users \%A_UserName%\ AppData \ Local \ Temp \ file.htm' 应该可以正常工作。 – Bob

+0

@Bob ** Nope **。剪贴板仍然是空白的。我的机器有问题吗?上面的代码行可以在你的机器上工作吗?即它会将htm文件的内容发送到剪贴板? – Bababarghi

+0

我不知道你的机器是否有问题。对我来说,它甚至可以在大于10 MB的文件上工作。不知道为什么它会帮助,但你有''FileRead'尝试保存到其他变量,然后使用'剪贴板:= var'吗?你也可以尝试'剪贴板:= RegexReplace(var,“\ 0”,“+”)'来替换NULL字符。谁知道。 – Bob

回答

0

你确定路径正确吗?如果你这样做:

FileRead, Clipboard, C:\Users\%A_UserName%\AppData\Local\Temp\file.htm 
MsgBox %ErrorLevel% 

什么是MSGBOX说? “如果加载成功,则ErrorLevel设置为0,如果发生问题,则ErrorLevel设置为1,例如:1)文件不存在; 2)文件被锁定或不可访问; 3)系统缺乏足够的内存来加载文件“。来源:https://autohotkey.com/docs/commands/FileRead.htm

您安装了哪个版本的AutoHotkey?如果你有一个非常旧的版本,读取一个Unicode(utf-8)文件可能会有困难(不确定)。 如果可能,请务必下载并安装最新版本https://autohotkey.com/download/

FileRead应该可以正常工作。但它会将HTML代码的内容读取到剪贴板。如果您想要HTML文件的格式化文本,所以段落,粗体,斜体,列表,表格等等。您需要使用WinClip()库的不同技术。

  1. 下载并解压从这里WinClip()库https://autohotkey.com/board/topic/74670-class-winclip-direct-clipboard-manipulations/
  2. 创建一个新的脚本,这将读取HTML文件并读取格式的文本到内存中,并将其粘贴(例如Office或做在接受格式化输入的其他程序):

    #Include WinClipAPI.ahk 
    #Include WinClip.ahk 
    wc := new WinClip 
    
    WinClip.Clear() 
    
    FileRead, html, C:\Users\%A_UserName%\AppData\Local\Temp\file.htm 
    WinClip.SetHTML(html) 
    WinClip.Paste() 
    

来源:How to send formatted/rich data (formatted text, links, images, etc) - #4

注意:我在我自己的Lintalist程序中使用了相同的技术。

+0

谢谢@lintalist。不幸的是,由于我不再需要此代码的办公室工作,此线程现在已经死亡。因此我无意测试你的建议。但是,我再次感谢您的时间和精力。 – Bababarghi