【问题标题】:Visual FoxPro 9 dynamic ArraysVisual FoxPro 9 动态数组
【发布时间】:2012-04-23 18:08:38
【问题描述】:

我试图通过 Visual FoxPro 9 从我的 ActiveX 组件中获取动态数组,但没有成功。 (编辑和工作示例)

LOCAL objMain, objAdapt

#define CrLf CHR(13) + CHR(10)

stMsg = ""

objMain = CREATEOBJECT('nnetsdk.oMain')

objMain.UnlockComponent("xxx-xxxxx-xxxxx-xx")

objAdapt = CREATEOBJECT('nnetsdk.oNetworkAdapter')

objAdapt.GetNetworkAdapters && Collects Network Adapter information

vrAdapters = objAdapt.cName && cName holds collected Network Adapter names

FOR EACH vrAdapter IN vrAdapters
 stMsg = stMsg + vrAdapter + CrLf
ENDFOR

MESSAGEBOX(stMsg,64,"List Network Adapters")

RELEASE objAdapt
RELEASE objMain

谁能解释一下这段代码有什么问题?

【问题讨论】:

    标签: arrays dynamic com visual-foxpro


    【解决方案1】:

    我不知道您的“nnetcom.oMain”ActiveX 控件是什么,但您可以通过 VFP 直接获取

    lcComputerName = "."
    loWMIService = GETOBJECT("winmgmts:\\" + lcComputerName + "\root\cimv2")
    loItems = loWMIService.ExecQuery("Select * from Win32_NetworkAdapter",,48)
    
    FOR EACH loItem IN loItems
        lcMACAddress = loItem.MACAddress
        IF !ISNULL(lcMACAddress)
            */ then, you can look at the object properties, such as 
            lcDescription = loItem.Description
            lcMacAddress = loItem.MACAddress
            lcNetConnectionID = NVL( loItem.NetConnectionID, "" )
       ENDIF
    ENDFOR
    

    For Each 循环循环通过 [Win32_NetworkAdapter] 类结构的类实例。您可以从该列表中获得几乎任何您想要的东西。 1

    【讨论】:

    • 嗨 DRapp,是的,我知道 WMI,实际上我的 ActiveX 组件使用它。 objAdapt.cName 将收集到的网络适配器名称保存在 Array 中。
    • @beic,那么我想我会很好奇为什么在 VFP 可以获取并直接处理数组时使用 ActiveX 控件。
    • 是的,但是我正在开发一种框架组件...无论如何,您对那行代码 FOR EACH loItem IN loItems 帮助了我很多,现在它可以正常工作了...我赞成您的提议并接受为答案!谢谢... ;-) p.s.我会将更正的示例添加到我的帖子中!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-07
    相关资源
    最近更新 更多