Board logo

标题: [问题求助] 求助,我在hta脚本中想要做到点击按钮就打开一个文件 [打印本页]

作者: LTSC1809    时间: 2023-7-27 13:11     标题: 求助,我在hta脚本中想要做到点击按钮就打开一个文件

我在hta脚本中想要做到点击按钮就打开一个文件,但是发现hta中好像wscript这种wsh的对象都不能用了,所以没法用wscript.shell的run方法来运行文件了。我也试过其他方法,比如:<button onclick="location.href='a.vbs';">点我打开2.htm</button>,但是这个会在浏览器里打开file:///C:/Users/Administrator/Desktop/a.vbs,所以无法运行vbs,行不通。大家有没有什么方法能在hta中成功调用wscript.shell的run方法来运行文件,或者其他方法也可以。如果事hta的原生方法而不是js或者vbs这些那就更好了。谢谢
作者: czjt1234    时间: 2023-7-27 15:51

本帖最后由 czjt1234 于 2023-7-27 15:55 编辑

OnClick = "Ok()"

Sub ok()
    '
End Sub
作者: jyswjjgdwtdtj    时间: 2023-7-27 16:07

我去 你是牛逼的 你创建wshshell对象的时候用到了wscript?
贪多嚼不烂 把vbs学学好再说吧
作者: jyswjjgdwtdtj    时间: 2023-7-27 16:09

本帖最后由 jyswjjgdwtdtj 于 2023-7-27 16:16 编辑

vbscript:createobject("wscript.shell").run "a.vbs"
还有 你从哪里旁门左道地学个location.href? hta又不是不可以执行vbs为什么还有用外部的vbs?
你倒是可以<script language=vbscript src=a.vbs></script>
作者: LTSC1809    时间: 2023-8-11 08:22

回复 4# jyswjjgdwtdtj 我要调用外部文件,因为它们不一定是vbs,也可能是exe或bat等
作者: LTSC1809    时间: 2023-8-11 08:31

回复 3# jyswjjgdwtdtj 创建wshshell
  1. set wshshell=createobject("wscript.shshell
复制代码
这不就用到了?
作者: jyswjjgdwtdtj    时间: 2023-8-11 08:51

回复 6# LTSC1809


   你扯淡这不是吗?这里都是"wscript.shell"都在引号里面了你和我说用了wscript对象?难道创建一个internetexplorer.application还要用到inter...orer对象?
亏得学了那么久 字符串和变量都分不清
作者: LTSC1809    时间: 2023-8-11 08:55

回复 7# jyswjjgdwtdtj 这是createobject关键字的用法…不是字符串…请你分清楚
作者: jyswjjgdwtdtj    时间: 2023-8-11 08:56

回复 5# LTSC1809


   好好找个教程学学 当你想问location.href怎么用的时候 你最好搜location对象 而不是“location.href怎么用来运行外部程序”不然你永远也学不会
作者: jyswjjgdwtdtj    时间: 2023-8-11 08:57

本帖最后由 jyswjjgdwtdtj 于 2023-8-11 09:00 编辑

回复 8# LTSC1809


   createobject是个函数你得记住他接受一个字符串然后返回以这个字符串为progid的组件 wshshell只是一个普普通通的组件 只不过是为windows脚本宿主设计的 才叫wscript.shell 这玩意只要你乐意 在.net c++ 里都能用
作者: LTSC1809    时间: 2023-8-11 09:04

回复 10# jyswjjgdwtdtj wshshell其实没有意义的 你想叫什么都行,只要把set后面的wshshell改了就行,反正都是经过后面的creatobject("wscript.shell")
作者: czjt1234    时间: 2023-8-11 11:30

回复 5# LTSC1809


按照2楼的试过没?
作者: jyswjjgdwtdtj    时间: 2023-8-11 14:18

回复 11# LTSC1809


    不知道你在想些什么 这个对象叫做wshshell 就像你叫ltsc1809一样 怎么没有意义? 而且和wscript对象完全没关系
作者: LTSC1809    时间: 2023-8-12 11:10

回复 13# jyswjjgdwtdtj 我的意思是你set wshshell换成set aaa或者set at等都行,不是非要叫wshshell不可
作者: LTSC1809    时间: 2023-8-12 11:18

回复 13# jyswjjgdwtdtj 和wscript对象没关系,那为什么createobject函数要传入"wscript.shell"?要是和wscript对象没关系,那我随便传入一个对象的方法比如Shell.Application,他就不行了。
作者: jyswjjgdwtdtj    时间: 2023-8-12 11:32

回复 15# LTSC1809


   啊?那如果
  1. sub co(name)
  2. msgbox "你输入的是:"&name
  3. end sub
复制代码

这个函数需要wscript对象?
你的意思就是 输入wscript.shell才能输出wscript.shell 输入shell.application就不能正确输出wscript.shell是吧 所以这个函数也需要wscript
作者: jyswjjgdwtdtj    时间: 2023-8-12 11:42

回复 14# LTSC1809


   那我问你shell.application是不是用到了shell对象? adodb.stream是不是用到了adodb对象?wscript.shell 就是个名字 wscript是姓 shell是名 和wscript.network是兄弟好吧
我叫wscript.shell 就像我叫宋.青书 然后有辆车叫比亚迪宋 你和我说我的名字和这辆车的名字有关系 ?
作者: LTSC1809    时间: 2023-8-12 13:25

回复 17# jyswjjgdwtdtj


    你可能误解了我的意思,这里的shell.applicthon对象只是我随便选的一个当作例子,并不是因为他和wscript.shell都有个“shell”才专门选的它




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2