0

私が作成したアプリケーションでは、IP アドレスを変更する Visual Basic スクリプトを記述する必要があります。

スクリプトは次のとおりです...

Dim strIPAddress
Dim strSubnetMask
Dim strGateway
Dim intGatewayMetric
Dim strDns1
Dim strDns2

strIPAddress = "192.168.1.211"
strSubnetMask = "255.255.255.0"
strGateway = "192.168.0.11"
intGatewayMetric = 1
strDns1 = "8.8.8.8"
strDns2 = "4.4.4.4"

Set objShell = WScript.CreateObject("Wscript.Shell")
objShell.Run "netsh interface ip set address name=""Local Area Connection"" static " & strIPAddress & " " & strSubnetMask & " " & strGateway & " " & intGatewayMetric, 0, True
objShell.Run "netsh interface ip set dns name=""Local Area Connection"" static "& strDns1, 0, True
objShell.Run "netsh interface ip add dns name=""Local Area Connection"" addr="& strDns2, 0, True
Set objShell = Nothing
WScript.Quit

私がこれを書き込もうとしている方法は、次のようなものです..

    Directory.CreateDirectory("C:\SpecMee\IPChanger\")
    Dim objwriter As New System.IO.StreamWriter("C:\SpecMee\IPChanger\IpChanger.vbs")


    objwriter.WriteLine("Dim strIPAddress" & Environment.NewLine & "Dim strSubnetMask" & Environment.NewLine & "Dim strGateWay" & Environment.NewLine & "Dim intGatewayMetric" & Environment.NewLine & "Dim strDns1" & Environment.NewLine & "Dim strDns2" & Environment.NewLine & "strIPAddress = """ & Environment.NewLine & TB_IPAddress & Environment.NewLine &)

    objwriter.Close()
    MessageBox.Show("Created")

私が抱えている問題は 1 つで、スクリプトに "" をどのように含めるかということです。

私はこれに時間を費やすことを気にしません。私がこれを正しい方法で行っているかどうかはわかりません.

任意の助けをいただければ幸いです。

ありがとうクリス

4

2 に答える 2

1

スクリプトをテキスト ファイル リソースとしてプロジェクトに追加します。スクリプト内の IP アドレスのすべてのインスタンスを既知の値に置き換えてから、string.replace を使用します。

Const ipPlaceHolder As String = "##IP##"
    Dim scriptContent As String = My.Resources.script.Replace(ipPlaceHolder, myTextBox.Text)
    IO.File.WriteAllText("C:\SpecMee\IPChanger\IpChanger.vbs", scriptContent)

myTextBox にはユーザー入力が含まれ、テキスト ファイル リソースの名前は「Script」です。

于 2012-07-10T21:37:34.997 に答える
0

行に2つの引用符があると、出力に1つになります。
「そして彼は「彼女が吹くのだ!」と言った」

(1つに2つの質問があります。これは、Stackoverflowの良い習慣とは見なされません。)

于 2012-07-10T21:26:59.317 に答える