注册 登录
编程论坛 VB6论坛

变量与shell应用

snrtjat 发布于 2013-01-22 14:23, 937 次点击

请高人帮小弟看看下面的编码有没有问题,我想点击“连接”就能自动配IP并连到我在局域网里的对应PC,

Private Sub Command1_Click()

Dim MyStrLine As String

Open App.Path & "\ip.txt" For Input As #1
Do While Not EOF(1)
 Line Input #1, MyStrLine
 If Left(MyStrLine, 2) = Text1.Text Then
     Exit Do
   End If
Loop
Close #ip

Dim ipurl As String
ipurl = Right(MyStrLine, Len(MyStrLine) - 5)

Shell App.Path & "\vnc.exe " & ipurl & Chr(34), vbNormalFocus'这一句现在有问题,达不到自动配IP的效果
Dim longTimer As Long
  longTimer = Timer
Do Until Timer - longTimer >= 1
  DoEvents
  Loop
  SendKeys "{enter}"
  SendKeys "stwhost"
  SendKeys "{enter}"
 
End Sub

11 回复
#2
yz10252013-01-22 14:31
只有本站会员才能查看附件,请 登录

http://qqyy20.blog.

[ 本帖最后由 yz1025 于 2013-1-22 14:36 编辑 ]
#3
snrtjat2013-01-22 15:47
那该如何修正呢?
#4
yz10252013-01-22 16:45
.....
Shell App.Path & "\vncviewer.exe " & ipurl, vbHide
.....
#5
snrtjat2013-01-22 17:15
谢谢你的即时回复。
我确认过不是调用文件的文件名问题,问题是在& "ipurl & Chr(32)", vbHide上面,请帮忙看看是不是这个变量的运用方法有问题?
我的思路是这样的:
根据textbox里的信息查找IP.txt里的相对应IP地址,并将这个IP地址付给变量iprul;

IP.txt内容如下:
6071 10.83.22.100
6072 10.83.22.101
6073 10.83.22.102

调用VNC程序时将iprul的值自动输进去,接下来的这个动作就如下面的编码,应该是没有问题的。
.........
Dim longTimer As Long
  longTimer = Timer
Do Until Timer - longTimer >= 1
  DoEvents
  Loop
  
  SendKeys "stwhost"
  SendKeys "{enter}"
#6
snrtjat2013-01-22 17:28
附上图片:
只有本站会员才能查看附件,请 登录
#7
snrtjat2013-01-22 20:54
高手都潜水了,帮帮忙呀,急用.
#8
yz10252013-01-22 21:13
自动配IP?我是OK~
只有本站会员才能查看附件,请 登录
#9
snrtjat2013-01-23 11:36
yz1025:非常感谢你的积极解答,VNC是可以使用了,但是目前只能连接IP.txt中的第一行PC名的IP地址,
IP.txt内容如下:
6001 10.83.22.199
6002 10.83.22.198
6003 10.83.22.122
在我输入6001时调用的IP地址是10.83.22.199这个是正确的,但是当我输入6003时,调用的名字是6001 IP:10.83.22.1199,请再次出手帮忙优化,非常感谢!
只有本站会员才能查看附件,请 登录
#10
snrtjat2013-01-23 12:01
现在就是没有“自动配IP”的功能
#11
yz10252013-01-23 12:46
原来这就是你所说的"自动配IP"....
我还在想说这跟DHCP有啥关系...太简单了吧
我的中文能力不好~您描述keyword让我想太多~

程序代码:

Private Sub Command1_Click()
Dim MyStrLine As String, Temp() As String
Dim ipurl As String
   
    ipurl =""
    Open App.Path & "\ip.txt" For Input As #1
        Do While Not EOF(1)
            Line Input #1, MyStrLine
            MyStrLine = Trim$(MyStrLine)
            If MyStrLine <> "" Then
                Temp = Split(MyStrLine, " ")
                If UBound(Temp) = 1 Then
                    If InStr(Trim$(Temp(0)), Trim$(Text1.Text)) <> 0 Then
                        ipurl = Trim$(Temp(1))
                        Exit Do
                    End If
                End If
                Erase Temp
            End If
        Loop
    Close #1

    Shell App.Path & "\vncviewer.exe " & ipurl, vbNormalFocus

Dim longTimer As Long
   
    longTimer = Timer

    Do Until Timer - longTimer >= 1
        DoEvents
    Loop
  
    SendKeys "{enter}"
    SendKeys "stwhost"
    SendKeys "{enter}"

End Sub


您真是太有才了~

[ 本帖最后由 yz1025 于 2013-1-23 12:50 编辑 ]
#12
snrtjat2013-01-23 12:56
回复 11楼 yz1025
非常感谢你的帮助,我是菜鸟,刚刚开始学习,还请多多指教.
1