2012-01-19 2 views
0

Я пытаюсь работать в течение недели, чтобы заставить это работать, но не повезло. Я полностью отключил свою службу Windows vb.net 2008, чтобы просто создать файл vbs и запустить его с помощью процесса. Кто-то может помочь? Я умираю здесь. Файл vbs создается и действителен. Я могу выполнить его вручную, служба Windows просто не запустит его !! Я нахожусь на машине с Windows 7, и процесс скомпилирован и установлен как 32-битный процесс. Он также устанавливается как локальная система.vb.net 2008 - служба windows не будет выполнять vbs в процессе

После того, как процесс пытается выполнить, я создал текстовый файл, и он сделал это успешно. Итак, я знаю, что служба не рушится.

Любые идеи?

Приветствия, J

Dim TextFile As New StreamWriter("C:\LRQuadrant\" & "john" & ".vbs") 

'Create the VBS file - won't work in .Net 
TextFile.WriteLine("Set WshShell = WScript.CreateObject(""WScript.Shell"")") 
TextFile.WriteLine("ScenFile = """ & "john" & """") 
TextFile.WriteLine("Set LRE = WScript.CreateObject (""WLRun.LrEngine"")") 
TextFile.WriteLine("WScript.Sleep 5000") 
TextFile.WriteLine("if LRE.Scenario.IsOpened then") 
TextFile.WriteLine("While LRE.Scenario.IsActive") 
TextFile.WriteLine("Wscript.Sleep 10000") 
TextFile.WriteLine("Wend") 
TextFile.WriteLine("end if") 
TextFile.WriteLine("LRE.Scenario.Open ScenFile, SAVE_CURRENT") 
TextFile.WriteLine("DateString = Year(Date) & 
    Right(""0"" & Month(Date), 2) & 
    Right(""0"" & Day(Date), 2) &""_""& 
    Right(""0"" & Hour(Now),2) & Right(""0"" & 
    Minute(Now),2)") 
TextFile.WriteLine("ResultDir = ""C:\LRQuadrant\""") 
TextFile.WriteLine("LRE.Scenario.ResultDir = ResultDir") 
TextFile.WriteLine("If LRE.Scenario.Start = 0 Then") 
TextFile.WriteLine("While LRE.Scenario.IsActive") 
TextFile.WriteLine("Wscript.Sleep 10000") 
TextFile.WriteLine("Wend") 
TextFile.WriteLine("end if") 
TextFile.WriteLine("if Not LRE.Scenario.IsResultsCollated then") 
TextFile.WriteLine("LRE.Scenario.CollateResults") 
TextFile.WriteLine("end if") 
TextFile.WriteLine("while not LRE.Scenario.IsResultsCollated") 
TextFile.WriteLine("Wscript.Sleep 10000") 
TextFile.WriteLine("wend") 
TextFile.WriteLine("LRE.CloseController()") 
TextFile.Close() 

Threading.Thread.Sleep(1000) 

Process.Start("C:\LRQuadrant\john.vbs") 

Dim TextFile2 As New StreamWriter("C:\LRQuadrant\bugger.txt") 
TextFile2.WriteLine("hello") 
TextFile2.Close() 

ответ

1

Вы должны WaitForExit().
В противном случае вы попытаетесь прочитать файл до завершения процесса.

1

Файлы VBS не являются исполняемыми файлами. Они интерпретируются как скрипты. Так что вам нужно будет позвонить cscript.exe и передать файл VBS в качестве аргумента:

cscript.exe //B //Nologo C:\LRQuadrant\john.vbs 

Или, возможно, полный путь:

C:\Windows\system32\cscript.exe //B //Nologo C:\LRQuadrant\john.vbs 

Если это не работает совершенно верно, вы можете попробовать это:

%comspec% /C cscript.exe //B //Nologo C:\LRQuadrant\john.vbs 

Удачи.

+2

Системная папка всегда должна находиться на пути. Вы определенно должны ** не ** жестко кодировать значение здесь (или где угодно). –

Смежные вопросы