C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: DOSアプリProcess起動後のコマンド入力


(過去ログ 95 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■56571 / inTopicNo.1)  DOSアプリProcess起動後のコマンド入力
  
□投稿者/ kazu (1回)-(2011/01/20(Thu) 12:08:59)

分類:[C#] 

使用言語:Micorosoft Visual C# 2005
MS-DOSアプリ:WinSCP

DOSアプリ(WinSCP.com)をProcess起動後、"open 192.168.….…"⇒"username"⇒"password"⇒…⇒ファイルをアップロード⇒ログアウトという処理を自動で定期的に行うプログラムを作成しているところなのですが、どうしてもコマンドを入力することができません。手動で立ち上げとコマンド入力ができるので、プログラムでもできるだろうと思い挑戦しているところなのですができません。
他の掲示板で相談したところ、ウィンドハンドルを使用した方法かプロトコルを勉強して一から作る方法を進められましたが、時間があまりなく既存のプログラムを利用して短時間で作成したいのでご教示よろしくお願いいたします。
引用返信 編集キー/
■56572 / inTopicNo.2)  Re[1]: DOSアプリProcess起動後のコマンド入力
□投稿者/ shu (374回)-(2011/01/20(Thu) 12:19:44)
No56571 (kazu さん) に返信

ProcessのStandardInput(標準入力), StandardOutput(標準出力)辺りは
使えませんか?
引用返信 編集キー/
■56573 / inTopicNo.3)  Re[1]: DOSアプリProcess起動後のコマンド入力
□投稿者/ やじゅ (1819回)-(2011/01/20(Thu) 12:28:58)
やじゅ さんの Web サイト
No56571 (kazu さん) に返信
>どうしてもコマンドを入力することができません。

コマンド入力が必要ですか?
バッチファイル作成して、動かすとかだと駄目なんですか
また、スクリプトファイルを書き換えてから、動作させるって方法も考えられます。

scp.bat
winscp3 /console /script=スクリプトファイル名

スクリプトファイルの中身
open ユーザ名:パスワード@サーバアドレス
get サーバ上のファイル名 ローカルファイル名
put ローカルファイル名 サーバ上のファイル名

http://q.hatena.ne.jp/1237168985
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1012348365?fr=rcmd_chie_detail
引用返信 編集キー/
■56578 / inTopicNo.4)  Re[2]: DOSアプリProcess起動後のコマンド入力
□投稿者/ kazu (2回)-(2011/01/20(Thu) 16:37:09)
No56572 (shu さん) に返信
> ■No56571 (kazu さん) に返信
>
> ProcessのStandardInput(標準入力), StandardOutput(標準出力)辺りは
> 使えませんか?

返信ありがとうございます。StandardInputも使ったことがありましたがだめでした。
通常起動だと
>WinSCPと表示されますが、

StandardInputを使用すると
全く何も表示されません。

ちなみにこれがそーすの一部分です。
Process psInfo = new Process();
psInfo.StartInfo.FileName = @"C:\Program Files\WinSCP\WinSCP.com"; // 実行するファイル
psInfo.StartInfo.CreateNoWindow = false;
psInfo.StartInfo.UseShellExecute = false; // シェル機能を使用しない
psInfo.StartInfo.RedirectStandardInput = true;
psInfo.StartInfo.RedirectStandardOutput = true;

psInfo.Start();

psInfo.standardInput.WriteLine("open jaeabl03.spring8.or.jp");


引用返信 編集キー/
■56581 / inTopicNo.5)  Re[3]: DOSアプリProcess起動後のコマンド入力
□投稿者/ shu (375回)-(2011/01/20(Thu) 17:44:03)
No56578 (kazu さん) に返信

VB.NETですが

        Dim psInfo As New ProcessStartInfo("C:\Program Files\WinSCP\WinSCP.com")
        psInfo.CreateNoWindow = True
        psInfo.UseShellExecute = False
        psInfo.RedirectStandardInput = True
        psInfo.RedirectStandardOutput = True

        Dim proc = Process.Start(psInfo)
        Dim wt = proc.StandardInput
        Dim rd = proc.StandardOutput
        Dim strTmp As String

        For i = 1 To 5
            strTmp = ""
            Do
                strTmp &= ChrW(rd.Read())
            Loop While rd.Peek() >= 0
            Console.WriteLine(strTmp)

            Select Case i
                Case 1
                    wt.WriteLine("open jaeabl03.spring8.or.jp")
                    wt.Flush()
                Case 2
                    Exit For
            End Select
        Next

        wt.Close()
        rd.Close()


これで以下のコンソール出力が出ました。


winscp> 
open jaeabl03.spring8.or.jp
サーバを探索中・・・
Host does not exist
winscp> 


引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -