初心者が、TELNETを扱う。

解決


白瓢  2007-09-27 00:17:55  No: 137605

初心者すいません。
今までテルネットはソフトで制御してたのですが
サービスの起動などができるという話を聞きまして
全く、理解できません。
よろしければ、詳しく教えてくだされば嬉しいです。

「テルネットのサービスを停止し、一分後に開始の状態にするVB作成」

よろしくお願いします。


通りすがり  2007-09-27 00:55:14  No: 137606

シェルで、
net stop telnet
で停止、

net start telnet
で開始、

一分間待つのはSleep関数で・・・。


白瓢  2007-09-27 18:34:39  No: 137607

早速のレス
ありがとうございます。
何か、そういうVBでのネットワークでの
勉強にお勧めな参考文献とかないでしょうか?
ネットで見てても反芻出来ないので・・・(汗
すみません。


白瓢  2007-09-27 19:41:04  No: 137608

シェルはWINでは使えないみたいですね。
あちこち調べてみたのですが、UNIXですね。

WINNTで、上記の動作などは不可能なのでしょうか?

本当に申し訳ありませんです(><)


大吉末吉  2007-09-27 19:52:03  No: 137609

> シェルはWINでは使えないみたいですね。

ここで言っている「シェル」って、
VBで用意されている「Shell関数(外部コマンドを起動する関数)」の事だと・・・


通りすがり  2007-09-27 22:59:03  No: 137610

すいません。片言のキーワードでは難しかったですね。

net stop telnetはコマンドプロンプトで実行すると
サービスを停止することが出来ますよね
また同様に、
net start telnetをコマンドプロンプトで実行すると
サービスを開始することが出来ると思います。

たとえば、
Call Shell("Command.com /c net start telnet")
もしくは、
Call Shell("cmd.exe /c net start telnet")

で開始して

Calll Sleep(60000) ←ミリ秒なので
で1分待ち
Call Shell("Command.com /c net stop telnet")
もしくは、
Call Shell("cmd.exe /c net stop telnet")

で停止してはいかが?っと


魔界の仮面弁士  2007-09-27 23:34:46  No: 137611

その目的であれば、WMI の Win32_Service クラスを使うことができるかと。
http://msdn2.microsoft.com/en-us/library/aa394418.aspx

あるいは、Shell オブジェクト(Shell関数ではない)でも制御できます。
開始させるなら、
    Call CreateObject("Shell.Application").ServiceStop("TlntSvr", False)
の一行だけで済みます。
なお、TlntSvr とは、Telnet の「サービス名」です。(Telnet は表示名)

もう少し書くと、こんな感じね。
環境が分からないので、VB6 前提のコードです。

Dim oShell As Object
Set oShell = CreateObject("Shell.Application")

Dim serviceName As String
serviceName = "TlntSvr"

Dim running As Boolean
running = oShell.IsServiceRunning(serviceName)
If running Then
    MsgBox "現在、稼働しています。"
Else
    MsgBox "現在、稼働していません。"
End If

If oShell.CanStartStopService(serviceName) Then
    MsgBox "状態を変更可能です。"
Else
    MsgBox "状態を変更できません。"
End If

oShell.ServiceStart serviceName, False
MsgBox "開始させました。"

oShell.ServiceStop serviceName, False
MsgBox "停止させました。"

oShell.ServiceStart serviceName, True
MsgBox "開始させ、スタートアップを[自動]にしました。"


魔界の仮面弁士  2007-09-27 23:36:26  No: 137612

> 開始させるなら、
>   Call CreateObject("Shell.Application").ServiceStop("TlntSvr", False)

すみません、
  開始 → ServiceStart
  停止 → ServiceStop
ですね。訂正。


白瓢  2007-09-28 23:21:47  No: 137613

うわーありがとうございます。
この週末に研究してみます。
本当にありがとうございます。

そのようなソースなどの勉強はやはり皆様独学なのですよね。
ちっとも頭に入らなくって。
なんかいい勉強法あるでしょうか?
話が違うほうに進みましたのすみません。


通りすがり  2007-09-28 23:32:05  No: 137614

>なんかいい勉強法あるでしょうか?

自分の場合、
VB6などは、NET上に豊富にサンプルなどがありますので、
こういった掲示板などで紹介されるURLなどを
地道にブックマークやお気に入りに追加していき、
諸先輩方の書いたコードを元に、自分で実行してはまって見る。

自分もあまりイケてないので、一度書いて動かしてみたり、
(なぜか)動かない場合には、デバッグしてみたりしてます。

でも、ホント、サンプルが豊富に転がっているので
Google先生に検索キーワードを入れて・・・。が主ですね。

あとは、大きな本屋に行って立ち読み・・・。
ネットでキーワードにあたりをつけてから本を調べると
意外とポイントを絞って、読むことが出来ます。


白瓢  2007-09-29 21:42:35  No: 137615

レスありがとうございました。
がんばってやってみます。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加