| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1072 人关注过本帖
标题:又一个 Active部件不能创建对象
只看楼主 加入收藏
xingming022
Rank: 1
等 级:新手上路
帖 子:103
专家分:9
注 册:2015-1-26
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:6 
又一个 Active部件不能创建对象
程序代码:
Private Sub Command1_Click()
Dim aa As String

Dim strLocalIP As String
Dim winIP As Object
Dim cpuSet As SWbemObjectSet
Dim cpu As SWbemObject
Set winIP = CreateObject("MSWinsock.Winsock")
strLocalIP = winIP.localip
aa = strLocalIP
Set cpuSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_Processor")
For Each cpu In cpuSet
    aa = aa & cpu.ProcessorId  'aa = aa & "A" & cpu.ProcessorId
    Open App.Path & "\duquip2.txt" For Output As #1  'Output Append
        Write #1, cpu.ProcessorId
    Close #1
Next


Open App.Path & "\1.txt" For Output As #1  'Output Append
    Write #1, aa
Close #1
MsgBox "生成完毕"
End Sub
2015-12-02 14:26
xingming022
Rank: 1
等 级:新手上路
帖 子:103
专家分:9
注 册:2015-1-26
收藏
得分:0 
百度说的那些方法我基本全部都试过了,都不管用。
2015-12-02 14:34
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4937
专家分:30047
注 册:2008-10-15
收藏
得分:0 
找到一个,测试可用。

http://zhidao.baidu.com/link?url=0R3RYW8nxBcEPBuc8mlttBzI4duvkfdt5I_Ouo7Bm9bn24siqxA3yG5DbXNpYJQ7qMgAZoQg93F3KxZRx8apnK
程序代码:
Option Explicit

Private Sub GetMyIP()
Dim strComputer As String
Dim objWMI As Object
Dim colIP As Object
Dim IP As Object
Dim I As Integer
strComputer = "."
Set objWMI = GetObject("winmgmts://" & strComputer & "/root/cimv2")
Set colIP = objWMI.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each IP In colIP
If Not IsNull(IP.IPAddress) Then
For I = LBound(IP.IPAddress) To UBound(IP.IPAddress)
MsgBox "IP 地址:" & IP.IPAddress(I) & Chr(10) & "网卡类型:" & IP.Description(I) & Chr(10) & "网卡地址:" & IP.Macaddress(I)
Next
End If
Next
End Sub

Private Sub Command1_Click() '调用
GetMyIP
End Sub


授人于鱼,不如授人于渔
早已停用QQ了
2015-12-02 14:44
xingming022
Rank: 1
等 级:新手上路
帖 子:103
专家分:9
注 册:2015-1-26
收藏
得分:0 
回复 3楼 风吹过b
版主你好,感谢您的回复,我还需要读取CPU序列号,另外像我的代码的那种情况是无解了 么 啊?
2015-12-02 16:30
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4937
专家分:30047
注 册:2008-10-15
收藏
得分:0 
找到一个。http://bbs.,12楼。
Public Function GetCpu() As String
   On Error Resume Next
   Dim TmpCode$
   Dim ObjWMIService As Object, objItem As Object, colItems As Object
   Set ObjWMIService = GetObject("winmgmts:\\.\root\cimv2")
   Set colItems = ObjWMIService.ExecQuery("Select * from Win32_Processor", , 48)
   For Each objItem In colItems
      TmpCode = TmpCode & " " & objItem.ProcessorId
   Next
   GetCpu = Trim(TmpCode)
End Function


授人于鱼,不如授人于渔
早已停用QQ了
2015-12-02 17:08
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4937
专家分:30047
注 册:2008-10-15
收藏
得分:20 
回复 4楼 xingming022
因为引用了外部对象,所以 在某些电脑上可以用,在某些电脑上就会出错。这是肯定的。

使用 WMI ,也存在这种情况,有些电脑上没开这个服务,但机率很少而以。

授人于鱼,不如授人于渔
早已停用QQ了
2015-12-02 17:09
xingming022
Rank: 1
等 级:新手上路
帖 子:103
专家分:9
注 册:2015-1-26
收藏
得分:0 
回复 6楼 风吹过b
谢谢您~
2015-12-04 14:07
快速回复:又一个 Active部件不能创建对象
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023199 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved