現在、C#でWinSCPに自動でログイン後、ファイルをアップロードしログアウトを定期的に行うプログラムを作成中なのですが、
ProcessでWinSCP.comを起動後、コマンドプロンプトのような画面にコマンドを打ち込むことが打ち込むことができず困っています。手動だとWinSCPを起動して、”open ホスト名”入力⇒サーバ接続⇒”ユーザー名”入力⇒”パスワード”入力⇒ログイン・・・・⇒ログアウトということができるのですが、参考にできるコードがネット上で見つけられません。起動時に引数を与える方法はたくさん載っているのですが、今回やりたい事と違っているのでどのようにコードを記述すればよいのかご教示ください。よろしくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
バッチファイルやスクリプトファイルを使用する方法も最初考えたのですが、スクリプトファイルを作成した経験がない事とあまり良く知らないので命令文を順次投げていくというイメージしかなかったので、
この方法を却下していました。
コマンド入力のタイミングおよびサーバ接続・ログイン失敗等のエラー発生時の対処はスクリプトファイルで対応できるのでしょうか?
No.1
- 回答日時:
Windowsにおける画面(ウィンドウ)操作のアーキテクチャを
ご存知ですか?
テキストボックスも、ボタンも実はウィンドウです。
つまり、操作するにはウィンドウハンドルを取得しなければ
なりません。そもそもWinSCPの親ウィンドウを見つけられ
ますか?(FindWindowExまたはEnumWindows)
次にその子ウィンドウを列挙して、テキストボックスやボタンを
見つけるのですが、その方法を知っていますか?
テキストボックスに文字列をセットする方法、ボタンにマウス
クリックを通知する方法を知っていますか?
これらが、全て分からないとプログラムできません。
しかも、正常動作せず、予期した画面に遷移しなかった時は
どうやって異常を認識する予定ですか?
むしろ、FTP、SFTP、SCPのプロトコルを自力で処理する
プログラムを作る方が近道だと思いますよ。
先ずはソケット通信の方法を勉強します。これはこれで、
「通信」のアーキテクチャを覚えることになるので、自分の
キャリアアップに繋がります。次にプロトコルを勉強することで
やはりスキルアップに繋がります。
FTP等のプロトコルは大抵はクライアントからの要求送信、
サーバからの応答受信が繰り返されるだけです。
要求のコマンド+パラメータと応答コードの意味さえ分かれば
さして難しいものではありません。但し、大量データの送受信
ではクライアント側にもサーバ側機能のような処理が必要で、
これはやや難しいところもあります。
いずれのプロトコルでもググれば何かしらのサンプルが見つ
かるので、応用できるはずです。
ウィンドハンドルを取得して操作する方法は知っています。でもこの方法だとプログラムが動作している間、他の操作をすることができないのでこの方法でやろうとは考えていませんでした。
>むしろ、FTP、SFTP、SCPのプロトコルを自力で処理するプログラムを作る方が近道だと思いますよ。
こちらの方法でやりたかったのですが、時間がなく勉強する暇すらありません。
今回は既存のものを使って短時間でできないかと思い、質問いたしました。
他の掲示板でも似た内容の質問をされている方がおり、最終的に自分で解決しましたと書かれていたので
方法があるのだと思っていました。質問に答えていただきありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Visual Basic(VBA) tatsumaru77様 昨日回答して頂いたものです。 すみませんが、昨日の質問で1つ補足があります 1 2022/05/15 15:06
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
- Windows 10 パソコンが使えず困ってます!(Microsoftアカウントでログイン後、PINコードに関するエラー) 2 2023/03/17 19:09
- Windows 10 win10 立ち上げ時のエラー 1 2023/04/17 11:55
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
ExcelのBOOKが消えた!
-
検索の画面がでなくなってしま...
-
ラジオボタンの初期指定
-
ゲームでは結局どっちが良いの?
-
Vba LongPtrについて教えてくだ...
-
VisualC++ サブウインドウの作り方
-
作成したウインドウのサイズを...
-
VBA .Value=.Value ?
-
勝手にウィンドウが開いて止ま...
-
MFC ダイアログ上のID取得につ...
-
Console.WriteLine で表示されない
-
最大化と最小化ボタン
-
メッセージをスルー
-
EXCEL2016で新しいウィンドウを...
-
ボタンのハンドルウィンド取得...
-
最大化時のフルスクリーン
-
Alt+P,Alt+NをPostmessageで送...
-
他のアプリケーションの終了処理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
検索の画面がでなくなってしま...
-
勝手にウィンドウが開いて止ま...
-
ゲームでは結局どっちが良いの?
-
Excelの上下を固定したい
-
VBA .Value=.Value ?
-
作成したウインドウのサイズを...
-
Vba LongPtrについて教えてくだ...
-
ExcelのBOOKが消えた!
-
ラジオボタンの初期指定
-
他のアプリケーションの終了処理
-
「&HFFFF」「&H1A」とは?
-
親ウインドウにあるOKボタンを...
-
EnumChildWindowsの使い方(VBA)
-
MFC ダイアログ上のID取得につ...
-
[VBA] UserForm を Excel の W...
-
UWSCで特定のChromeのタブをア...
-
ボタンのハンドルウィンド取得...
-
ExcelVBAでAPIを使って外部ウイ...
おすすめ情報