• ベストアンサー

delphiでtelnet(indy)

IndyのTIdTelnetコンポーネントを使ってtelnetをするプログラムを作っているのですが、プロンプト待ちをするようなプログラムがよく分りません。 コマンドを「ls」などをうって、処理が終わりプロンプトが返ってくるまで処理を止める・・・・というようなのは、どのようにすればできるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mimis
  • ベストアンサー率66% (16/24)
回答No.1

Indyのデモプログラムをダウンロードして「Telnet Client」を見れば 多少参考になるかと思います。 基本的にTIdTelnetコンポーネントはデータを受信するとOnDataAvailable イベントが発生するので、SendChでコマンドを送ったあとは特に処理せず コマンドを入力出来ないようにし(Enable:=Falseなど)、OnDataAvailable イベントが発生したら入力できるようにすれば、見た目は待っているような 感じになります。

参考URL:
http://www.indyproject.org/
serafu3
質問者

お礼

回答ありがとうございます。 なるほど・・ 入力を止めても待つ感じになりますね。 ちょっと工夫して考えて見ます。 ありがとうございました。 あと、それを使って、処理を自動化させたかったのですが、また違った処理になりそうですね。 それは別で質問上げたいと思います。

関連するQ&A

  • 自動でtelnet

    お世話になります。 ボタンクリックすると自動でTelnetを起動しコマンドを投げてtelnetを終了する...処理を作っています。 telnet接続からの操作はvbsで作成、 そのvbsをbatfileで起動するようにしました。 古いパソコン環境で動かす(32bit)というので、あえてvc++6.0で作成し正常に、動きました。 それを64bitのWindows2012で動かしたら、vbsの中のtelnetの接続のところでエラーになります。  'telnet'は、内部コマンドまたは外部コマンド、  操作可能なプログラムまたはバッチファイルとして認識されていません と、なります。 telnet clientはinstallしてあり、 コマンドプロンプトでbatファイルをたたくとちゃんと正常に動きます。 batファイルをダブルクリックでも動きます。 コマンドプロンプトでcscript xxx.vbs  としても正しく動きます。 プログラムから CreateProcessで、「cmd xxx.bat」としているのですが。。。 どこが間違ってるのか、何がダメなのか判断が付かないのです。 至急アドバイスをいただけないでしょうか。 よろしくお願いいたします。

  • vc++でtelnet

    お世話になります。 現在、コマンドプロンプトでtelnetを起動し、ある特定のコマンドを投げている作業があります。特定のコマンドが、一つのパラメーターが違うだけなので、ボタンを押してそのコマンドを投げられるような画面を作って...と言われました。 CreateProcessを使って、cmd→telnet→標準出力...で、 (1)画面アプリ起動(初期処理:CreatePorcess(cmd telnet xxx.xxx.xxx.xxx)) (2)ボタンクリック (3)cout << abc 1 2 3 <<endl (コマンド投入) (4)ボタンクリック (5)cout << abc 1 2 4 <<endl etc.. (6)終了ボタンclick(telnet終了:quit、cmd終了:exit) などでいけるかなと思ったのですが、(3)でアプリ画面のほうに制御が戻ってきません。 コンソール画面を表示して確認すると、投入はできてる感じで、入力待ちになってるようです。 そこでenterを押しても画面には戻らず、、enter→quitで戻る?! 通信系は苦手ですが、コマンドプロンプトでやってることをそのままだから とは思ったものの...omz 根本的に間違っているでしょうか? サンプルコードも探したのですが、見つからず質問させていただきました。 teratermマクロ...など見つけたのですが敷居が高いのとteratermのインストールは×みたいで。webアプリも駄目といわれ。。。 どうかアドバイスをお願いいたします!

  • TELNETプログラミング

    今、Telnetを使用しUNIXサーバのシェルを起動づるプログラムを作成中なのですが、インターネットを検索した所、下記に辿りつきました。下記を参考にし作成していましたが、60行目のプロンプト出力待ちで実行中まま61行目に処理が移りません。 全く原因がわかりません。 わかる方がおられましたら宜しくお願い致します。 http://www.visards.co.jp/java/net/net05.html

    • ベストアンサー
    • Java
  • XPとVistaでtelnetを使いたい

    自宅にあるWindowsXPでコマンドプロンプトを起動し、 そのまま telnet 192.168.***.*** とIPを打ち込んでも、 「操作可能なプログラムとして認識されていません」と表示されて使えません。 起動時のフォルダは「C:\Documents and Settings\アカウント名」です。 telnet.exeがあるC:\WINDOWS\System32まで移動すれば使えるのですが、 ここまで移動せずに telnet 192.168.***.*** とだけ打ち込んで使えるようにするためには、 コマンドプロンプト起動時のフォルダをC:\WINDOWS\System32に設定するしか方法は無いのでしょうか? また、Windows Vista Businessにはtelnet.exeが無いのでしょうか? まだ操作に慣れていないので確実じゃないですけど、GUI上で検索かけたけど見つかりませんでした。

  • telnetの仕組みについて

    telnetの仕組みがいまいち分かりません。 自分のPC:リモートする方 相手のPC:リモートされる方 として 仮想端末に接続して自分のPCでコマンドを打つと思うのですが(telnetはコマンドプロンプトから起動します。また専用のソフトを使ってもCUIですよね) この打っているのは相手側のPCがwindowsなら相手側のコマンドプロンプトに打っているのと同様なのでしょうか。またUNIXとかならシェルに打っているのと同様なのでしょうか。

  • telnet(delphi+indy)で処理を自動化したい

    処理を自動化を考えていて、特定文字(例えばプロプトや、yes/noを聞いてくるような場合)を受信するのを待ち、そのプロンプトが返ってきたら、次に移る・・・・というような感じにしたいのです。 他言語での例を言うと、teratermマクロの中の「wait関数」みたいな感じに・・ wait "login" とかして、loginが表示されるのを待って、ユーザー名を送信 wait "Password" とかでパスワードを求められたら、パスワードを送信とかしたいのですが、出来ますでしょうか?

  • telnet の方法

    Windows のコマンドプロンプトから、FreeBSD に telnet でログインしたいのですが、どうやったらいいのでしょうか? C:\>telnet Microsoft Telnet>open (to)192.168.1.20 接続中: 1192.168.1.20...ホストへ接続できませんでした: 接続に失敗しました と出ます。サーバー側の設定が必要なのでしょうか?

  • タスクスケジューラでのtelnet実行について

    よろしくお願いいたします。 ネットワーク機器に定期的にログインチェックを行う必要が生じたため、 バッチファイルとVBSを作成し、手動で実行すると問題なく動作しました。 ところがWindowsタスクスケジューラでユーザーがログオフした状態で実行すると 異常終了してしまいました。 処理の流れは以下になります。 (1)バッチファイル起動 (2)バッチファイルが適当な名前を付けたコマンドプロンプトを起動。 (3)バッチファイルがVBSを起動 (4)VBSが(2)で起動したコマンドプロンプトをアクティブにする。 (5)VBSがSendKeysメソッドでコマンドプロンプト上でtelnetを実行 原因が分からず困っています。 ユーザーがログオフしている環境ではtelnetは実行できないものなのでしょうか。 どうぞご教授下さい。

  • apacheとtelnet

    サーバーをapacheでたてそのホームページをTELNETで操作したいと思います。コマンドプロンプトで>telnet _IPaddと打っても23ポート番号が通信できませんでした。と出てしまいます。OS WINXPです。質問の仕方が変であればご記入いただければ幸いです。

    • ベストアンサー
    • Perl
  • C++でTelnet

    Telnetクライアントを作っています。 コンソールやコマンドプロンプトを使わず、ソースだけで実行したいのですが、どうソースを組めばいいのでしょうか? 一応TCP/IPでのベースは組めています

専門家に質問してみよう