【问题标题】:Possibility of VB.net and VBScriptVB.net 和 VBScript 的可能性
【发布时间】:2013-05-20 20:26:06
【问题描述】:

是否可以在 VB.net 2008 项目中包含一个 VBScript (test.vbs) 并在需要处理时运行它?但最重要的是应该可以只构建一个 .exe。

如果是这样,您还可以从 VBS 文件中接收值/参数吗?

这里举个例子,虽然没什么意义,但是用来理解的:

  1. VB.net -> exe 正在运行
  2. exe运行please_find_the_coputername.vbs
  3. 脚本please_find_the_coputername.vbs -> 获取计算机名并将这个变量发送到VB.net
  4. VB.Net 通过Msgbox() 显示计算机名称。

注意:我知道我可以用 VB.net 读出计算机名称,但此示例仅用于理解我的问题。

编辑:

嗨@maxedev 谢谢你的回答。 哇..它的好把戏。 但我只想在 VB.net 中执行此 VBScript 代码:

Dim strComputer

strComputer = "LP-BKR"

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
  & strComputer & "\root\cimv2")

Set colComputer = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem")

For Each objComputer in colComputer
  Wscript.Echo "Logged-on Domain: " & objComputer.Domain
  Wscript.Echo "Logged-on UserName: " & objComputer.UserName
  Wscript.Echo "Logged-on ComputerName: " & objComputer.Name
Next

set objWMIService = Nothing
set colComputer = Nothing

我搜索了一整天以获得相同的值......但没有找到任何东西。这就是为什么我决定这样做。但如果我认为,剪贴板的把戏是有风险的。它将静止的剪贴板文本推开。怎么实现?

【问题讨论】:

    标签: vb.net vbscript


    【解决方案1】:

    我不确定你想要完成什么,但你可以写入一个文本文件,然后通过 vb.net 读取它 - 或者你可以做一些类似this post 的事情来使用剪贴板传递信息即:

    VBS:

    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run "cmd.exe /c echo hello world | clip", 0, TRUE
    

    VB.NET:

    MessageBox.Show(Clipboard.GetText)
    

    --显示“你好世界”

    【讨论】:

      【解决方案2】:

      一种解决方案是添加对 MS 脚本控件的引用: http://msdn.microsoft.com/en-us/library/aa227400(v=vs.60).aspx

      使用它,您可以使用 AddCode() 方法添加字面上的添加代码 (VBScript),然后运行它并获取输出。我有一个小例子here

      【讨论】:

        【解决方案3】:

        Windows 会自动提供您在环境变量中寻找的信息:

        %USERNAME%      -> username of the logged in user
        %USERDOMAIN%    -> WINS name of the domain the user is logged into
        %USERDNSDOMAIN% -> FQDN of the domain the user is logged into
        %COMPUTERNAME%  -> hostname of the computer
        

        【讨论】:

          猜你喜欢
          • 2011-04-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-11-06
          相关资源
          最近更新 更多