2012-01-19 3 views
0

私はこの問題を解決するために1週間は払っていますが、運がないようにしています。私はvb.net 2008のWindowsサービスを完全に削除して、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 //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

システムフォルダは常にパスに含まれている必要があります。あなたは間違いなくここに値をハードコーディングしてはいけません**。 –

関連する問題