首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB加载一个控件,调试运行时一般,编译时出现拒绝的权限,换到虚拟机一样情况

2012-12-17 
VB加载一个控件,调试运行时正常,编译时出现拒绝的权限,换到虚拟机一样情况在网上下载的一个VB源码 《翻译的

VB加载一个控件,调试运行时正常,编译时出现拒绝的权限,换到虚拟机一样情况
在网上下载的一个VB源码 《翻译的一个法国VB爱好者的代码,比较简单的一个代码,其中使用了PACKETX.DLL》

就是关于调用PACKETX.DLL这个控件的

网上找的方法

在有问题的机器上,通过控制面板——管理工具——组件服务——组件服务——计算机——我的电脑右击—属性—“选项”选项卡——事务超时(秒)改成0,“默认属性”选项卡中把“在此计算机上启用分布式DCOM”打勾。

还是行不通,我在想应该不是代码的原因,我本机哪里需要设置,求遇到过同类问题的朋友或则知道的告诉我一声,谢了


[解决办法]
顺便把代码发出来给大家看看

Public oPacket As Packet
Dim vnCounter As Integer
Dim oPacketColl As New PacketCollection
Dim WithEvents oPacketX As PacketX


Private Sub About_Click()
frmAbout.Show
End Sub

Private Sub Act_Click()
Option1.Value = True
Option2.Value = False
End Sub

Private Sub Check1_Click()

End Sub

Private Sub close_Click()
End
End Sub

Private Sub Command1_Click()
End
End Sub

Private Sub Command2_Click()
    If Text1.Text = "" Then
        MsgBox "Vous devez saisir une valeur !", vbCritical
        Exit Sub
    End If
    
    Text2.Text = ""
    Dim Temp As String
    Dim ValHexa As String
    Dim Result As String
    Dim i As Integer
    Dim j As Integer
    Dim Tablo() As String
    
    ValHexa = Text1.Text
    
    For i = 1 To Len(ValHexa) Step 2
        Temp = Temp & Mid(ValHexa, i, 2)
        Temp = Temp & "^"
        j = i
    Next i
    
    Temp = Left(Temp, Len(Temp) - 1)
    Tablo = Split(Temp, "^")
    
    For i = 0 To UBound(Tablo)
        Result = Result & Chr(Val("&H" & Tablo(i)))
    Next i

    Text2.Text = Result
End Sub

Private Sub Desact_Click()
Option1.Value = False
Option2.Value = True
End Sub

Private Sub Form_Load()
 Dim clm As ColumnHeader
  Set clm = ListView1.ColumnHeaders.Add(1, "Numro du paquet", "序列号", 1500)
  Set clm = ListView1.ColumnHeaders.Add(2, "Adresse Source", "原地址", 1500)
  Set clm = ListView1.ColumnHeaders.Add(3, "Port source", "原端口", 1500)
  Set clm = ListView1.ColumnHeaders.Add(4, "Adresse Destination", "目标地址", 1500)
  Set clm = ListView1.ColumnHeaders.Add(5, "Port de destination", "目标端口", 1500)
 Set clm = ListView1.ColumnHeaders.Add(6, "Taille", "数据报大小", 1500)


  Set clm = ListView1.ColumnHeaders.Add(7, "Protocol", "协议", 1500)

  Set oPacketX = New PacketX
  oPacketX.Adapter = oPacketX.Adapters(oPacketX.Adapters.Count)
  ListView1.View = lvwReport
End Sub

Private Sub ListView1_Click()
Text1 = ""
If Not ListView1.SelectedItem Is Nothing Then
    Dim oPacket As Packet
    Set oPacket = oPacketColl(ListView1.SelectedItem.Index)
  Else
  Exit Sub
  End If
  
  Dim vByte As Variant
  Dim sData As String
  Dim nPosition, nColumns As Integer
  nColumns = 16
  For Each vByte In oPacket.Data
    If nPosition = 8 Then
      sData = sData + " "
    End If
    If nPosition >= nColumns Then
      sData = sData + vbCrLf: nPosition = 1
    Else
      nPosition = nPosition + 1
    End If
    If vByte <= &HF Then
      sData = sData + "0"
    End If
    sData = sData + Hex(vByte) + " "
  Next
  Text1.SelText = sData
End Sub

Private Sub Option1_Click()
 ListView1.ListItems.Clear
  oPacketColl.RemoveAll
  oPacketX.Start
  vnCounter = 0
  Act.Checked = True
  Desact.Checked = False
End Sub

Private Sub oPacketX_OnPacket(ByVal pPacket As PacketXLib.IPktXPacket)

vnCounter = vnCounter + 1
  Dim clItem As ListItem
  Dim clSubItem As ListSubItem
  Set clItem = ListView1.ListItems.Add(vnCounter, , vnCounter)
  Select Case pPacket.SourcePort
  Case 21
  sport = "21 - FTP"
   Case 23
  sport = "23 - TELNET"
    Case 25
  sport = "25 - SMTP"
     Case 80
  sport = "80 - HTTP"
     Case 53
  sport = "53 - DNS"
  Case Else
  sport = pPacket.SourcePort
   End Select
   
   
     Select Case pPacket.DestPort
  Case 21
  Dport = "21 - FTP"
   Case 23
  Dport = "23 - TELNET"
    Case 25
  Dport = "25 - SMTP"
     Case 80
  Dport = "80 - HTTP"
     Case 53
  Dport = "53 - DNS"
  Case Else
  Dport = pPacket.DestPort


   End Select
   
   
  Set clSubItem = clItem.ListSubItems.Add(, "Adresse Source", pPacket.SourceIpAddress)
  Set clSubItem = clItem.ListSubItems.Add(, "Port source", sport)
  Set clSubItem = clItem.ListSubItems.Add(, "Adresse Destination", pPacket.DestIpAddress)
  Set clSubItem = clItem.ListSubItems.Add(, "Port de destination", Dport)
   Set clSubItem = clItem.ListSubItems.Add(, "Taille", pPacket.DataSize)
   Select Case pPacket.Protocol
   Case 3
   prot = "UDP"
   Case 4
   prot = "TCP"
   End Select
   
  Set clSubItem = clItem.ListSubItems.Add(, "Protocol", prot)
  
  
  oPacketColl.Add pPacket
End Sub

Private Sub Option2_Click()
 oPacketX.Stop
  Act.Checked = False
  Desact.Checked = True
End Sub


[解决办法]
引用:
在网上下载的一个VB源码 《翻译的一个法国VB爱好者的代码,比较简单的一个代码,其中使用了PACKETX.DLL》

就是关于调用PACKETX.DLL这个控件的

网上找的方法

在有问题的机器上,通过控制面板——管理工具——组件服务——组件服务——计算机——我的电脑右击—属性—“选项”选项卡——事务超时(秒)改成0,“默认属性”选项卡中把“在此计算机上启用分布式DCOM”打勾。
……


估计你的目标文件已经有个同名的文件存在,并且,该文件正在使用(如果被引用也算)
[解决办法]
引用:

不是这个原因,呵呵,找到原因了,DLL需要注册才能编译,就有外挂海模块差不多

热点排行