2

win7 で VBScript を使用して名前付きパイプを作成しようとしています。これは私のコードです(そこから取得しました):

Set fs = CreateObject("Scripting.FileSystemObject")
Set a = fs.CreateTextFile("\\.\pipe\PipeName", True)
a.WriteLine("This is a test.")
a.Close

しかし、エラーが発生しました(手動で翻訳したため、正確ではない可能性があります):

test.vbs(2, 1) Microsoft VBScript runtime error: File not found

通常のテキスト ファイルを使用した同じコードは問題なく動作します。

Set a = fs.CreateTextFile(".\\PipeName", True)

しかし、バックスラッシュをエスケープしようとしたとき:

Set a = fs.CreateTextFile("\\\\.\\pipe\\PipeName", True)

私が得た:

test.vbs(2, 1) Microsoft VBScript runtime error: Path not found

UPD:管理者としてスクリプトを実行します。

UPD2:パイプを使用せずに問題の別の解決策を見つけたので、質問は少し古くなっていますが、どうすればよいかわかりません。

4

2 に答える 2

0

VBScript から名前付きパイプを操作しようとしました。による名前付きパイプの作成に失敗しましたfso.CreateTextFile("\\.\pipe\MyPipe")

しかし、古典的なアプリケーションで作成されたパイプを使用して、VBScript から正常に接続しました。

パイプはそのようなコード (パスカル) によって作成されました:

procedure OpenTestPipe;

var
 i,hOut: Integer;

begin

  hOut:=CreateNamedPipe('\\.\pipe\Test.htm',PIPE_ACCESS_OUTBOUND,PIPE_TYPE_BYTE,PIPE_UNLIMITED_INSTANCES,1024,1024,NMPWAIT_USE_DEFAULT_WAIT,nil);

  i:=FileWrite(hOut,'Hello'#13#10,7);

MessageBox(0,'Pipe is opened','Pipe sample',0);

  FileClose(hOut);

end;

MessageBox が表示されたら、VBScript を開きました

Set fso = CreateObject("Scripting.FileSystemObject")

MsgBox fso.OpenTextFile("\\.\pipe\test.htm",1).readLine

そしてHelloというメッセージをもらいました

于 2013-11-22T09:17:53.957 に答える