Skip to the content.

返回主页

保存并运行

动作编号: 1049
动作名称: 保存并运行
动作作用的对象: 任意窗口
动作热键: #V|IfWinNotActive|ahk_class CabinetWClass
动作鼠标手势: 无
动作说明: 将选中 Ahk 代码保存到当前用户的桌面并运行
动作截图: 无
动作内容: canfunc|CF_CopyToDesktopAndRun|CandySel_Rich
以当前剪贴板内容为参数, 执行如意的内置的函数 “CF_CopyToDesktopAndRun”, 如意内置动作

代码及详细解释:

CF_CopyToDesktopAndRun(CandySel_Rich)
{
	global CandySel
	if !CandySel
		return
	CF_HTML := DllCall("RegisterClipboardFormat", "str", "HTML Format")
	n := 0
	while format := NumGet(CandySel_Rich, n, "uint")
	{
		size := NumGet(CandySel_Rich, n + 4, "uint")
		if (format = CF_HTML)
		{
			html := StrGet(&CandySel_Rich + n + 8, size, "UTF-8")
			RegExMatch(html, "(*ANYCRLF)SourceURL:\K.*", sourceURL)
			;fobj := FileOpen( A_Desktop "\123.txt", "rw", "UTF-8")
			;fobj.Write(html, size)
			break
		}
		n += A_PtrSize + 4 + size
	}

	SelCode := sourceURL ? ("; 来源网址: " sourceURL "`r`n" CandySel) : CandySel
	if SelCode
	{
		Code_File:=  A_Desktop "\" . A_Now  ".ahk"
		FileAppend, %SelCode%`r`n, %Code_File%, UTF-8
		run, %Code_File%, %A_Desktop%
	}
	SelCode := ""
	return
}