mshta命令用法示例
- 分类:
- 大小:242KB
- 语言:简体
- 版本:
它支持命令行参数,可以接收js和vbs方法。请参见示例(在命令行上进行测试):
js:
mshta vbscript:窗口。execscript(“警报('hello world!');”,“javascript”)
vbs:
mshta javascript:window。execscript(“msgbox('hello world!'):window.close(“vbs”)
调用vbs,分别使用msgbox函数和弹出方式:
mshta vbscript:msgbox(“该工作了,伙计!”,64,“提示”)(窗口关闭)
mshta vbscript:createobject(“wscript.shell”)。流行音乐(“该工作了,伙计!”,7,“提示”,64)(窗口关闭)
execute方法在一条语句中弹出两个信息框:
mshta vbscript:execute(“msgbox”一个框“:msgbox”两个框“:window.close”)
lz他们成功了,称之为系统的英语阅读:
mshta vbscript:createobject(“sapi.spvoice”)。说话(“祝你好运”)(窗口关闭)
以下是其他网友的补充
今天,我看到一批命令mshta。如果您感兴趣,可以搜索“mshta批次”
回音
启动mshta javascript:if(确认(“将连接到网站以检查您是否安装了.net 2.0运行时,是否要继续?此操作不会影响安装程序的操作!\r\n如果您确定相应的.net组件已安装,请按取消,否则请按确定!”)窗打开(“);window.close();
在百度上查询后,发现mshta exe是一个微软windows操作系统相关程序,用于执行hta文件,或批处理中的其他语言代码;例如,可以使用mshta javascript运行html网页,而不出现安全警告。
以下是摘录:
下面使用js表示javascript,使用vbs表示vbscript。
一般应用
代码:
mshta//jb51。网
js和vbs
有时,可以在bat中调用mshta js或vbs来实现某些功能。如果弹出对话框:
代码:
mshta“vbscript:msgbox(“内容”,0,“标题”)&窗口关闭”
然而,并不是所有的js和vbs命令都可以通过mshta运行,比如wscript sleep不能。
代码:
rem以下代码错误:
mshta“vbscript:wscript.sleep(1000)和window.close”
可以看出,mshta有条件地调用js或vbs。
基本规则
※mshta引用的命令必须等于一个值或变量。
这句话是什么意思?学习过vbs的朋友都知道,vbs中弹出对话框的命令是:
代码:
msgbox“内容”,0,“标题”
但是,如果在bat中运行mshta“msgbox”内容“0”,“title”,则会出现错误。这是因为msgbox“content”、“0”和“title”不等同于值或变量,而是等同于语句。
如果您不明白,请查看以下vbs:
代码:
a=1
b=2
c=a+b
msgbox“内容”
输入框“内容”
d=msgbox(“内容”)
e=输入框(“内容”)
在这段代码中,第一行1是值,a是变量,a=1是将变量a的值设置为1的语句。
第二行2是值,b是变量,b=2是语句。
第三行a+b相当于一个值。c是一个变量,c=a+b是一个语句。
至于第四行,情况发生了变化:
“内容”是一个数值。msgbox“content”是一个弹出对话框的语句。
在第五行中,“content”是一个数值,inputbox“content”是一条语句。
在第六行中,msgbox(“内容”)作为一个整体相当于一个值(请注意它和msgbox“内容”之间的差异)。d是一个变量,d=msgbox(“content”)是一条将变量d的值设置为msgbox(“content”)的语句。
类似地,第七行inputbox(“内容”)相当于一个值,e是一个变量,e=inputbox(“内容”)是一条语句。
因此,以下命令有效(其中&;window.close暂时被忽略):
代码:
@回音
mshta“vbscript:1&窗口.关闭”
mshta“vbscript:a&;window.close”
mshta“vbscript:a+b&;window.close”
mshta“vbscript:msgbox(“内容”)&窗口关闭”
mshta“vbscript:inputbox(“内容”)&窗口关闭”
以下命令无效:
代码:
::以下命令无效
mshta“vbscript:msgbox”内容
mshta“vbscript:inputbox”内容“
现在你明白了吗?
对于js,也有类似的情况,但在js中并不明显
此外,我刚刚发现vbs中的execute函数可以调用语句。这很复杂。自己研究一下。
连接多个命令
连接多个命令时,每个命令必须遵循上述基本规则。
※对于js,使用分号;连接多个命令。
代码:
mshta“javascript:alert('ok!');alert('1234');window.close()
※对于vbs,使用&;连接多个命令。
代码:
mshta“vbscript:msgbox(“内容”)&msgbox(“1234”)&窗口关闭”
※注意&;它在bat中有特殊的含义,所以mshta后面的代码必须用引号括起来!
窗关闭功能
尝试运行以下代码:
代码:
mshta“vbscript:msgbox(“内容”)”
你会发现,不仅弹出所需的对话框,还会出现一个恼人的白色框。窗close的功能是关闭它。
为什么wscript睡眠不起作用
微软最初将mshta设计为运行hta程序(可以大致理解为html网页程序),但wscript不能用于html网页(它只能用于真实的js或vbs),所以我们在调用mshta js或vbs时应该避免使用它。
用mshta制作图形界面
事实上,mshta也可以用于在bat中创建windows图形界面,但这里不会详细介绍。如果您感兴趣,请参阅
或 。
参考和解释:
※mshta引用的命令必须等于一个值或变量。
这仅适用于vbscript协议。可以用其他方式运行vbs语句。例如,关于协议:
代码:
mshta“关于:
确切地说,使用vbscript协议运行的代码不能包含语句,只能包含表达式和函数(此时,函数实际上是一个表达式)。这里的陈述是vbs概念中的陈述,而不是“句子”的一般含义。
msgbox“内容”,0,“标题”,这确实是一个声明,而不是“等价物”。
e=inputbox(“内容”),在vbs脚本中,它可以用作语句(赋值语句)或表达式(比较变量e和函数inputbox(“内容”)的返回值)。
如果使用vbscript协议运行,则它只是一个比较表达式。
vbscript协议运行代码可以使用&;连接不同的表达式是一个很好的发现。它实际上是一个表达式连接器。
但如果您想运行更复杂的语句,最好使用execute。执行也很简单。
例如,警报方法不能直接在vbs脚本中运行,因为它是Windows对象的方法,由mshta和ie等html解释器提供,而不是由脚本主机wsh提供。除非在vbs中创建这样的对象,例如internet explorer应用程序
mshta在运行js语句时没有此类限制。超级版本已经说过了,但是vbscript协议有这个限制。看起来vbs比js差一点。
例如,var a=1是一个明显的赋值语句,alert方法和close方法也可以被视为语句。
代码:
mshta“javascript:var a=1;警报(a);关闭();”
不是createobject(“wscript.shell”),而是createobject(“microsoft.xmlhttp”)。
我一直想用mshta下载文件,但总有一些问题。
微软由于xmlhttp组件本身的问题,禁止跨域操作。
以上是mshta命令使用示例的详细信息。有关mshta命令用法的更多信息,请关注script home的其他相关文章!
- 上一篇:
- 下一篇:
您还可以搜索:mshta vbscript:createobject,Mshta提权,Mshta 阻止,Mshta 反弹 shell,Mshtand④
本文地址:https://downloadforweb.com/jiaocheng/19551.html