0

VB.net 2008 プロジェクトに VBScript (test.vbs) を含めて、処理が必要な場合に実行することはできますか? しかし重要なことは、.exe を 1 つだけビルドできるようにすることです。

もしそうなら、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

同じ値を取得するために一日中検索しましたが、何も見つかりませんでした。だからこそ、このような形でやろうと思っています。でもよく考えたらクリップボードを使った手口はリスキー。静止クリップボードのテキストを押しのけます。どのように私はそれを実現することができますか?

4

3 に答える 3

1

何を達成しようとしているのか正確にはわかりませんが、テキスト ファイルに書き込んで vb.net を介して読み取ることもできます。または、この投稿のようなことを実行して、クリップボードを使用して情報を渡すこともできます。

VBS:

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

VB.NET:

MessageBox.Show(Clipboard.GetText)

--「Hello World」を表示

于 2013-05-20T20:47:55.850 に答える
0

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
于 2013-05-21T09:40:36.173 に答える