EDA365电子工程师网

标题: skill如何实现复制功能 [打印本页]

作者: liuanty    时间: 2016-7-5 11:18
标题: skill如何实现复制功能
skill有没有函数可以直接复制字符串,这里的复制就是指鼠标右键后可以粘贴,非常感谢!

作者: betamelody    时间: 2016-7-5 13:20
如果是Windows系统的话可以用以下代码
  1. procedure( C2Clipboard(str)
  2.   let((file port)
  3.     if(!stringp(str) then return(nil))
  4.     file = strcat(getTempDir() "/Clipboard.vbs")
  5.     when(isFile(file) errset(deleteFile(file)))
  6.     port = outfile(file)
  7.     fprintf(port "Set Ws=CreateObject(\"Wscript.Shell\")\n")
  8.     fprintf(port "Clipboard=\"MsHta vbscript:ClipBoardData.setData(\"\"Text\"\",\"\"\"&\"%s\"&\"\"\")(Window.Close)\"\n" str)
  9.     fprintf(port "Ws.Run(Clipboard)\n")
  10.     close(port)
  11.     shell(file)
  12.   )
  13. )
复制代码

作者: liuanty    时间: 2016-7-5 13:38
betamelody 发表于 2016-7-5 13:20
如果是Windows系统的话可以用以下代码

很好用,非常感谢!

作者: liuanty    时间: 2016-7-5 16:17
betamelody 发表于 2016-7-5 13:20
如果是Windows系统的话可以用以下代码

有一点小问题,为什么每次都会弹出CMD的框呀,能不能不弹框呢,谢谢!
作者: 361553894    时间: 2016-7-5 17:20
betamelody 发表于 2016-7-5 13:20
如果是Windows系统的话可以用以下代码

请问在Capture上怎么粘贴呢??
在键入footprint的时候不能使用粘贴板,目前做法是输入字符串,然后用vbs 的 sendkeys,比较麻烦

作者: chrysalis    时间: 2016-7-6 08:15
liuanty 发表于 2016-7-5 16:17
有一点小问题,为什么每次都会弹出CMD的框呀,能不能不弹框呢,谢谢!

把shell换成axlHttp试一下。

作者: liuanty    时间: 2016-7-6 08:35
chrysalis 发表于 2016-7-6 08:15
把shell换成axlHttp试一下。

有效果,非常感谢!
作者: liuanty    时间: 2016-7-6 09:24
chrysalis 发表于 2016-7-6 08:15
把shell换成axlHttp试一下。

  再请教一下,我想读取一个注册表,skill怎么才能获取到这个RegValue的值?非常感谢!         
           when(isFile(file) errset(deleteFile(file)))
            port = outfile(file)
            fprintf(port "Set Ws=CreateObject(\"Wscript.Shell\")\n")
            fprintf(port "RegValue = Ws.RegRead(\"*\\*\\*\\*\")\n")
            fprintf(port "Msgbox(RegValue)\n")
            close(port)
            axlHttp(file)

作者: liuanty    时间: 2016-7-6 09:24
betamelody 发表于 2016-7-5 13:20
如果是Windows系统的话可以用以下代码

  再请教一下,我想读取一个注册表,skill怎么才能获取到这个RegValue的值?非常感谢!         

           when(isFile(file) errset(deleteFile(file)))
            port = outfile(file)
            fprintf(port "Set Ws=CreateObject(\"Wscript.Shell\")\n")
            fprintf(port "RegValue = Ws.RegRead(\"*\\*\\*\\*\")\n")
            fprintf(port "Msgbox(RegValue)\n")
            close(port)
            axlHttp(file)

作者: liuanty    时间: 2016-7-6 09:36
361553894 发表于 2016-7-5 17:20
请问在Capture上怎么粘贴呢??
在键入footprint的时候不能使用粘贴板,目前做法是输入字符串,然后用vb ...

  请教一下,我想读取一个注册表,skill怎么才能获取到这个RegValue的值?非常感谢!         
           when(isFile(file) errset(deleteFile(file)))
            port = outfile(file)
            fprintf(port "Set Ws=CreateObject(\"Wscript.Shell\")\n")
            fprintf(port "RegValue = Ws.RegRead(\"*\\*\\*\\*\")\n")
            fprintf(port "Msgbox(RegValue)\n")
            close(port)
            axlHttp(file)

作者: betamelody    时间: 2016-7-6 09:47
换成 axlHttp的话就是假设系统没有更改过.vbs的默认打开方式,如果更改过会有问题,可以详细研究一下clip.exe
读注册表也可以用vbs
作者: liuanty    时间: 2016-7-6 10:02
betamelody 发表于 2016-7-6 09:47
换成 axlHttp的话就是假设系统没有更改过.vbs的默认打开方式,如果更改过会有问题,可以详细研究一下clip.exe ...

我就是用VBS读的注册表,关键是读取的内容不知道怎么返回给skill,目前想到的是创建一个txt,然后skill再读取,不知道有没有更好的方式?非常感谢!

作者: 361553894    时间: 2016-7-6 14:01
liuanty 发表于 2016-7-6 10:02
我就是用VBS读的注册表,关键是读取的内容不知道怎么返回给skill,目前想到的是创建一个txt,然后skill再 ...

vbs的运行状态是无法返回给skill的,这也是我用vbs修改、创建Excel最麻烦的地方
作者: mancy66525    时间: 2018-1-3 16:43
:)




欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/) Powered by Discuz! X3.2