两点区域打印PNG,lisp能将 wmfout 或者 pngout 输出的图片 添加到系剪切板吗
本帖最后由 纵横八方 于 2022-3-28 16:05 编辑前方高能请回答:lisp 能将 wmfout 或者 pngout 输出的图片 添加到系统剪切板吗?
960322 发表于 2024-4-20 11:12
好像不行呢
需要权限
powershell里,
Set-ExecutionPolicy AllSigned
Set-ExecutionPolicy RemoteSigned 纵横八方 发表于 2022-3-29 09:09
关键是要 复制到 剪切板
找到解决方法了吗?刚凑了一个,看看怎么样
(setq path (vla-item (vlax-get (vlax-create-object "WScript.Shell" ) 'SpecialFolders) "Desktop"))
;(vla-plottofile plot (setq path1 (strcat path "\\临时截图.png")))
(setq path1 (strcat path "\\临时截图.png"))
(setq path2 (strcat path "\\复制到剪贴板.ps1"))
(xty-sys-makeFbylst path2
(list "Add-Type -AssemblyName System.Windows.Forms"
(strcat "::SetImage(::FromFile(\"" path1 "\"))")))
(setq myapp(vlax-create-object "WScript.Shell"))
(Vlax-invoke-method myapp "run" (strcat "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe " path2) 0 true)
(vlax-release-object myapp)
;;xty-sys-makeFbylst见http://bbs.mjtd.com/forum.php?mod=viewthread&tid=185791&highlight=%D0%B4%2B%CE%C4%B1%BE
PS C:\Users\Administrator> Add-Type -AssemblyName System.Windows.Forms
PS C:\Users\Administrator> ::SetImage(::FromFile("C:\Users\Adminis
trator\Desktop\临时截图.png"))
使用“1”个参数调用“SetImage”时发生异常:“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Ma
in 函数带有 STAThreadAttribute 标记。”
所在位置 行:1 字符: 43
+ ::SetImage <<<< (::FromFile("C:\Users\Administrator\Desktop\临
时截图.png"))
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException 本帖最后由 nxchenjk 于 2022-3-29 08:21 编辑
我是通过两点设置窗口,之后用"export"输出为bmp文件。
(setq pt1(polar point0 0.68496 20));显示窗口右上角坐标
(setq pt2(polar point0 3.82655 20));显示窗口左下角坐标
(vl-cmdf "_zoom" pt1 pt2)
(command "export" SavePathName "")
关键是要 复制到 剪切板 借助其它软件可以实现,比如用com操作office,将这个图片插进去再pic.copy 帮顶,这个功能实用,求高手出山 sandyvs 发表于 2024-3-22 12:07
找到解决方法了吗?刚凑了一个,看看怎么样
(setq path (vla-item (vlax-get (vlax-create-object "WScr ...
好像不行呢 sandyvs 发表于 2024-4-20 11:56
需要权限
powershell里,
Set-ExecutionPolicy AllSigned
这个是真不懂。请问是在哪里弄,我觉得这个功能好有用,截图很方便。能否麻烦详细说一下怎么弄,谢谢了! 会在桌面生成一个 复制到剪贴板.ps1文件,不知道怎么用