ExcelでTelnetを動かしたい
長々と書いて申し訳ありませんが、困っています。
使用環境はWindows 2000です。開発環境というかexcel2000のVBAでコーディングしています。
で問題点が2点ありまして、
(1)EnumWindowsの所で止まるのですが、AddressOf演算子はexcel2000でも使えますよね。
コンパイルエラー Sub、Function、または Property が必要です というエラーで止まります。
何か使用方法が間違っていますでしょうか?
(2)テキストボックスを2つ用意してあるので、それを引数としてtelnetでつなぐパソコンを
選べるようにしたいのですが引数でうまく渡せません(現状はコメントアウトしている部分です)。
Private Sub CommandButton1_Click()
box1 = TextBox1
box2 = TextBox2
'ipnum = "telnet xxx.xxx."box1"."box2
'待ち時間処理用の時刻の変数
newHour = Hour(Now())
newMinute = Minute(Now())
Shell "cmd.exe"
lRet = Shell("C:\WINNT\system32\cmd.exe", vbNormalFocus)
newSecond = Second(Now()) + 5
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Call EnumWindows(AddressOf Rekkyo, 0)
lRet = FindWindow(vbNullString, "C:\WINDOWS\system32\cmd.exe")
Call SendMessage(lRet, WM_SYSCOMMAND, WM_MAXIMIZE, ByVal 0&)
Call PostMessageStrings("telnet xxx.xxx.xxx.xxx")
'Call PostMessageStrings(ipnum)
Call PostMessageStrings("xxx.bat")
Call PostMessageStrings("exit")
Call PostMessageStrings("exit")
End Sub
Public Function PostMessageStrings(strPost As String)
Dim i As Integer
'1文字ずつ分解して送信
For i = 1 To Len(strPost)
Call PostMessage(lRet, &H102, Asc(Mid(strPost, i, 1)), 0)
Next
'送信後に改行コードを送信
Call PostMessage(lRet, &H102, 13, 0)
End Function
標準モジュールに、こんな感じでAPI関数を記述してあります。
他のAPIも記述してありますが、割愛してあります。
'ウィンドウのハンドルの取得
Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
誰か教えてください。よろしくお願いします。
お礼
長い間お礼を書かずに、大変失礼しました。 お忙しい中、書き込みしてくださったのに…。 以後気をつけます。 >親切なものであればon/offの機能がついてるのもあります。 そうなんですね。知らなかった。 年末に私とは別の会社の方が、「エコーONにしたほういいですか?」ってやりとりしていたので、何かツール?でONOFF変えられるみたいです。 正直に言うとNo2様の回答の中に、私の脳みそでは理解できない部分があり(余計な出力は/dev/null行きにしたほうが早いかもしれませんね。→わかんない…) 、もう少し勉強してみようと思います。 今回は本当にありがとうございました。