找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 33906|回复: 17

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

[复制链接]
发表于 2023-7-27 13:11:42 | 显示全部楼层 |阅读模式
我在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这些那就更好了。谢谢
发表于 2023-7-27 15:51:37 | 显示全部楼层
本帖最后由 czjt1234 于 2023-7-27 15:55 编辑

OnClick = "Ok()"

Sub ok()
    '
End Sub
发表于 2023-7-27 16:07:35 | 显示全部楼层
我去 你是牛逼的 你创建wshshell对象的时候用到了wscript?
贪多嚼不烂 把vbs学学好再说吧
发表于 2023-7-27 16:09:50 | 显示全部楼层
本帖最后由 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>
 楼主| 发表于 2023-8-11 08:22:47 | 显示全部楼层
回复 4# jyswjjgdwtdtj 我要调用外部文件,因为它们不一定是vbs,也可能是exe或bat等
 楼主| 发表于 2023-8-11 08:31:10 | 显示全部楼层
回复 3# jyswjjgdwtdtj 创建wshshell
  1. set wshshell=createobject("wscript.shshell
复制代码
这不就用到了?
发表于 2023-8-11 08:51:53 | 显示全部楼层
回复 6# LTSC1809


   你扯淡这不是吗?这里都是"wscript.shell"都在引号里面了你和我说用了wscript对象?难道创建一个internetexplorer.application还要用到inter...orer对象?
亏得学了那么久 字符串和变量都分不清
 楼主| 发表于 2023-8-11 08:55:30 | 显示全部楼层
回复 7# jyswjjgdwtdtj 这是createobject关键字的用法…不是字符串…请你分清楚
发表于 2023-8-11 08:56:34 | 显示全部楼层
回复 5# LTSC1809


   好好找个教程学学 当你想问location.href怎么用的时候 你最好搜location对象 而不是“location.href怎么用来运行外部程序”不然你永远也学不会
发表于 2023-8-11 08:57:32 | 显示全部楼层
本帖最后由 jyswjjgdwtdtj 于 2023-8-11 09:00 编辑

回复 8# LTSC1809


   createobject是个函数你得记住他接受一个字符串然后返回以这个字符串为progid的组件 wshshell只是一个普普通通的组件 只不过是为windows脚本宿主设计的 才叫wscript.shell 这玩意只要你乐意 在.net c++ 里都能用
 楼主| 发表于 2023-8-11 09:04:55 | 显示全部楼层
回复 10# jyswjjgdwtdtj wshshell其实没有意义的 你想叫什么都行,只要把set后面的wshshell改了就行,反正都是经过后面的creatobject("wscript.shell")
发表于 2023-8-11 11:30:15 | 显示全部楼层
回复 5# LTSC1809


按照2楼的试过没?
发表于 2023-8-11 14:18:45 | 显示全部楼层
回复 11# LTSC1809


    不知道你在想些什么 这个对象叫做wshshell 就像你叫ltsc1809一样 怎么没有意义? 而且和wscript对象完全没关系
 楼主| 发表于 2023-8-12 11:10:08 | 显示全部楼层
回复 13# jyswjjgdwtdtj 我的意思是你set wshshell换成set aaa或者set at等都行,不是非要叫wshshell不可
 楼主| 发表于 2023-8-12 11:18:08 | 显示全部楼层
回复 13# jyswjjgdwtdtj 和wscript对象没关系,那为什么createobject函数要传入"wscript.shell"?要是和wscript对象没关系,那我随便传入一个对象的方法比如Shell.Application,他就不行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:45 , Processed in 0.018199 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表