
呵呵,没你想象的那么复杂。提供一种简易的实现思路吧:
1 创建一个包含字符串资源的exe,exe的主要内容是:
int main()
{
// 1 读取资源里的字符串,并把它写入到某个临时文件里去。
。。。。
// 2 调用系统函数运行上面那步生成的vbs文件,比如:
system("explorerexe tempvbs");
}
2 现在才轮到真正的转换程序。
先把第一步里的exe当成二进制资源保存起来(RCDATA类型)。
一旦开始转换,先把exe的二进制数据从RCDATA资源里读出来。
再把要转换的VBS文件内容读取出来,并替换掉之前那个exe的字符串资源。具体怎么替换参考下PE格式的文档就清楚了。
最后把经过替换之后的exe给用户保存起来,这个exe的功能就跟那个VBS一模一样。
set ws=WScriptCreateObject("WScriptShell")
wsRun """C:\Program Files\Test\PrinterMonitorExexe""",0,false '调用exe
wsRun """D:\工具箱\模拟 *** 作vbs""",0,true '调用vbs
wsRun """D:\ipcmd""" '什么参数都不加,常规窗口运行
wsRun实际参数是"C:\Program Files\Test\AutoUpdateExexe",因为带空格,先将它括起来作为一个整体,而两侧的"按要求应该用转义""表示,故成为""C:\Program Files\Test\AutoUpdateExexe""
而Run本身调用参数就得在外部加一对引号,故共有三对引号。
用msgbox"""C:\Program Files\Test\AutoUpdateExexe"""可验证,
结果为"C:\Program Files\Test\AutoUpdateExexe"。
对于Run方法,可以统一都用三个引号,wsRun"""C:\"""同样可以解析;
本例也可用wsRun"C:\progra~1\Test\AutoUpdateExexe"来实现。
Set objWord = CreateObject("WordApplication")
Set colTasks = objWordTasks
If colTasksExists("我的下载 - 迅雷7") = flash Then
Set objshell=createobject("wscriptshell")
objShellRun "C:\Progra~1\Thunde~1\Thunder\Program\Thunderexe", 0
End If
do until j = 1
If colTasksExists("我的下载 - 迅雷7") Then
colTasks("我的下载 - 迅雷7")visible = flase
j=1
End If
loop
objWordQuit
End If
loop
objWordQuit
直接用run有好多程序不会后台启动的
本程序是先运行再进行后台隐藏。 所以会看到迅雷窗口一闪而过
以上就是关于网上有很多能把VBS脚本文件转换为EXE可执行文件的软件 比如 vbsedit等 我想知道原理,到底是怎么转换的全部的内容,包括:网上有很多能把VBS脚本文件转换为EXE可执行文件的软件 比如 vbsedit等 我想知道原理,到底是怎么转换的、vbs怎么调用exe、bat、cmd、vbs,最好是调用不同目录的、vbs如何后台运行程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)