小编Bob*_*Bob的帖子

Windows VBScript - 使用Eval执行代码

我的vbscript文件中有一个字符串.我想将字符串作为代码执行.例如,字符串可以是'msgbox("hello")'.但是,eval函数只接受数字或字符串操作.我该如何执行代码?我总是可以创建一个新文件并将该字符串写入文件,执行该文件并删除它,但我正在寻找一种更好的方法来执行此操作.

windows vbscript eval

3
推荐指数
1
解决办法
4412
查看次数

C#等效于JScript的新ActiveXObject

我试图ActiveXObject()在C#中使用JScript.NET中新发现的功能.我怎样才能做到这一点?

并且不要说用COM对象可以做的任何事情都可以在C#中完成.如果我想这样做,我已经有了.

c# activex jscript.net

3
推荐指数
1
解决办法
5302
查看次数

从wscript.exe进程获取脚本名称

我正在使用此代码:

Dim name
name = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%computername%")
Set wmi = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _ 
    & name & "\root\cimv2")
For Each hwnd In wmi.InstancesOf("Win32_Process")
    If hwnd.Name = "wscript.exe" Then
        'get name and possibly location of currently running script
    End If
Next
Run Code Online (Sandbox Code Playgroud)

我成功列出了所有流程并选择了wscript.exe.但是,我搜索过,发现没有办法找到运行的脚本的名称wscript.exe,即.是myscript.vbsjscript.js什么的.如果有办法找到脚本的整个路径,可以获得奖励.

编辑:

通过更多搜索,我找到了解决方案.在上面的脚本中,hwnd变量存储wscript.exe进程的句柄.手柄有一个属性:hwnd.CommandLine.它显示了如何从命令行调用它,所以它将是这样的:

"C:\Windows\System32\wscript.exe" "C:\path\to\script.vbs"
Run Code Online (Sandbox Code Playgroud)

所以我可以解析hwnd.CommandLine字符串来查找所有正在运行的脚本的路径和名称.

vbscript

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

vbscript ×2

activex ×1

c# ×1

eval ×1

jscript.net ×1

windows ×1