2012-01-19 2 views
0

저는 일주일 동안 노력했지만 운이 없었습니다. 나는 vbs.net 파일을 만들고 프로세스를 사용하여 내 vb.net 2008 Windows 서비스를 완전히 제거했습니다. 누군가 도와 주실 수 있습니까? 나는 여기서 죽어 가고있어. vbs 파일이 생성되어 유효합니다. 수동으로 실행할 수 있습니다. 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 //B //Nologo C:\LRQuadrant\john.vbs 

또는 가능성의 전체 경로 : 당신이 cscript.exe를 호출하고 인수로 VBS 파일을 통과해야합니다 그래서 아주 잘 작동하지 않는 경우

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

, 당신은 시도 할 수 있습니다 이 :

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

행운을 빈다.

+2

시스템 폴더는 항상 경로에 있어야합니다. 당신은 반드시 여기에 (또는 어느 곳에서나) 값을 하드 코딩하지 않아야합니다 **. –

관련 문제