Это то, что запись реестра выглядит следующим образом:vb. Изменение реестра Значение с Vb программы
A1="OS Ver";A2="Patch Ver";A3="Location Number"
...
Мой сценарий будет принимать номер ячейки для экземпляра значения «A3» и передать его на программу VB я нахожусь пытаясь написать. Программа VB считывает ввод, определяет, существует ли A3 и изменяет значение.
Вот фрагмент кода VB:
модуль Main Public Sub Set_A3 (объявить строку) Open Registry ПолучитьЗначение Если A3 существует изменение A3 = "число Location" для ввода Registry.Close End Sub
Sub Main() Declare линии в качестве строки Readline Если строка содержит входной вызов функции End Sub
Где я застрял от команды, как программа отлично работает. Однако, как только я включу его в скрипт, он висит, читая все остальные записи.
Вопрос: как мне вызвать функцию readline, когда программа появляется на специальном символе из сценария, прежде чем получить номер места и затем остановится?
Любые другие способы приблизиться ко всему этому !! !!
Надеюсь, я выполнил задание OK, описывающее проблему. Если у вас есть какие-либо вопросы, пожалуйста, спрашивайте. Поистине оцените помощь.
Код по запросу Кена Уайта:
Imports System.Data.OleDb
Imports System.Net.NetworkInformation
Imports Microsoft.Win32
Module Main
Public Sub Set_A3(ByVal A3 As String)
Try
If A3 <> "" Then
Dim sConfig As String
Dim regKey As RegistryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\SS\Location\Variables", True)
sConfig = regKey.GetValue("VariableGroups")
Dim sConfigNew As String = ""
Dim s() As String = sConfig.Split(";")
For i As Integer = 0 To s.Count - 1
If s(i).Contains("A3") Then
s(i) = String.Format("A3={1}{0}{1}", AU, Chr(34))
End If
If s(i).Contains("A4") Then
s(i) = String.Format("A4={1}{0}{1}", "New Configuration", Chr(44))
End If
Next
Dim bFirst As Boolean = True
For Each stmp As String In s
If bFirst Then
sConfigNew = stmp
bFirst = False
Else
sConfigNew = String.Format("{0};{1}", sConfigNew, stmp)
End If
Next
regKey.SetValue("VariableGroups", sConfigNew)
regKey.Close()
Else
Console.WriteLine("No Location Number Input")
End If
Catch ex As Exception
Console.WriteLine(String.Format("RegSet Error: {0}", ex.Message))
End Try
End Sub
Sub Main()
Try
Dim line As String
line = Console.ReadLine()
If line IsNot Nothing And line.Contains("-a3") Then
Set_A3(Environment.GetCommandLineArgs(2).ToString())
line = Console.ReadLine()
If line.Contains("True") Then
Exit
End If
End If
Catch ex As Exception
End Try
End Sub
End Module
Так что же происходит после того, как программа закодирована выше получает называется, Readline пройдя через все другие материалы, прежде чем попасть в «-a3» и, таким образом, он будет просто сидеть там. Принимая во внимание, что если я просто вызову файл .exe через cmd с этим параметром '-a3 12345', он заполнит поле A3, которое будет прекрасно записано в реестре.
Надеюсь, это поможет. Пожалуйста помоги. Я очень ценю любые предложения/материалы.
Добро пожаловать в StackOverflow. Отправьте свой фактический код. Очень сложно отлаживать псевдокод; поскольку он не будет работать в любом случае, трудно сказать, почему он «из команды, как программа работает нормально» (???), когда вы «включаете ее в скрипт, она зависает» (???), потому что ни один из них не имеет никакого смысла. Вопросы о коде, который вы написали, должны содержать фактический код и четкое описание проблемы, с которой вы сталкиваетесь; этот вопрос в его текущем состоянии не содержит. –
Кен, большое спасибо за приветствие и разъяснения. Вот код. Пожалуйста, несите меня, когда я изучаю гайки или болты. Я всегда был lurker, это мой первый пост. – user2868634