Set IISOBJ = GetObject("IIS://LocalHost/W3SVC")Dim str2 As StringFor Each site In IISOBJ
If (site.Class = "IIsWebServer") Then Bindings = site.ServerBindings
End If
Next
如上面的代码,Bindings是一个数组,Bindings(0),Bindings(1)等存储相关信息,但Bindings数组元素的个数不确定,如何知道赋值后Bindgings元素的个数?谢谢
If (site.Class = "IIsWebServer") Then Bindings = site.ServerBindings
End If
Next
如上面的代码,Bindings是一个数组,Bindings(0),Bindings(1)等存储相关信息,但Bindings数组元素的个数不确定,如何知道赋值后Bindgings元素的个数?谢谢
解决方案 »
- 可能是 SourceSafe 引起的问题(附图)
- ====一日清单=========
- VB方面招中高手入群
- 请教高手关于记录集的问题,急!!!
- 查询语句问题
- [求助]导入一个指定名称的外部数据XLS文档
- 如何将JPG格式图片设置为桌面背景?
- 高分求原程序
- 急问各位:请问VB调用VC写的EXE,VC的图标放入托盘,VB程序退出时如何同时结束vc的程序及托盘图标
- 请帮忙标注代码的注释
- 一台机器上,mdac版本是可以共存呀,还是不管装过多少个版本,最后有效的只有一个版本呀?
- 我在xp环境下用vb6.0调用createprocess没有办法创建notepad.exe,并且凡是system32 文件夹下的应用程序都打不开。
s=Getdata '返回全部的Bindings, 我用s, 你不能再用Bindings
Msgbox Ubound(s) + 1 '总笔数
End Subpublic Function Getdata() as string()
Bindings(0)="1111"
Bindings(1)="2222"
Bindings(2)="3333"
Bindings(3)="4444"
Getdata=Bindings() '涵数返回
End Function
s = Getdata '返回全部的Bindings, 我用s, 你不能再用Bindings
MsgBox UBound(s) + 1 '总笔数
End SubPublic Function Getdata() As String()
For i = o To 3
ReDim Preserve Bindings(i)
Bindings(i) = String(4, CStr(i))
Print Bindings(i)
Next i
Getdata = Bindings() '涵数返回
End Function
Dim i%, Bindings$(), sPrivate Sub Command1_Click()
s = Getdata '返回全部的Bindings, 我用s, 你不能再用Bindings
MsgBox UBound(s) + 1 '总笔数
End SubPublic Function Getdata() As String()
For i = 0 To 3
ReDim Preserve Bindings$(i)
Bindings(i) = String(4, CStr(i))
Print Bindings(i)
Next i
Getdata = Bindings() '涵数返回
End Function
'例如你是监测 计算器 的运行, 发现便自动关掉'添加 Command1Dim trec%
Private Sub Command1_Click()
Call CloseExe("calc.exe")
End SubPublic Sub CloseExe(exenm As String)
strcomputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strcomputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & exenm & "'")
MsgBox colProcessList.Count '第一种方法得到总笔数,你的代码是 msgbox IISOBJ.count
trec = 0
If colProcessList.Count > 0 Then
For Each objProcess In colProcessList
If InStr(UCase(objProcess.ExecutablePath), UCase(exenm)) > 0 Then
'如果条件符合,你的Bindings(trec)就得到值,笔数就加1
'Bindings(trec) = objProcess.name
objProcess.Terminate
trec = trec + 1
End If
Next
End If
Set objWMIService = Nothing
Set colProcessList = Nothing
MsgBox trec '第二种方法得到总笔数
End Sub
首先,我对VB不太熟悉:)在我的代码中:
Bindings是一个自由变量,也就是说这个变量没有显式的定义成数组,拿来就直接用的。
其次,Bindings = site.ServerBindings 语句中,site.ServerBindings 返回的肯定是一个数组,至于是几个,这个不一定。所以,执行完赋值语句后,Bindings的值可能是如下情况:Bindings表示如下:
"aaaaaa"
"bbb"
也可能是如下情况:
Bindings表示如下:
"cc"
"ddddd"
"aaaaaaa"
"ff"
"22"
我现在想知道的就是Bindings到底包含几个元素(如第一种情况,返回值应该是2,第二种情况返回值应该是5。cbm666,你的回答好象不是我这个意思,你得到的好象是我代码中for循环执行的次数,其实我写的那个FOR循环可以不管 ,你可以认为没有这个FOR循环,只有这一句赋值,如上面的描述,那Bindings包括几个元素,怎么获得?最好写出来,谢谢。
如果是对象的话,一般都可以通过.COUNT属性来获得总的元素数量。
上面的 MsgBox colProcessList.Count '.count也可以返回数组中有几个变量的笔数.依你上面的意思在通用区要宣告 Dim Trec&,Bindings 'Bindings是变体型变量'返回调用的部份代码则是
Bindings = site.ServerBindings
Trec=Ubound(Bindings)
Redim Preserve Bindings$(Trec)Msgbox Bindings(0) 会得到 "cc"
Msgbox Bindings(1) 会得到 "ddddd"
Msgbox Bindings(2) 会得到 "aaaaaaa"
Msgbox Bindings(3) 会得到 "ff"
Msgbox Bindings(4) 会得到 "22" 呵呵 再看不懂, 俺投降了.....