elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  ElektroKit Framework v2.0 | ( Complemento para el núcleo de .Net Framework )
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] 4 Ir Abajo Respuesta Imprimir
Autor Tema: ElektroKit Framework v2.0 | ( Complemento para el núcleo de .Net Framework )  (Leído 35,367 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: ElektroKit Framework v1.5 | ( Complementos para el núclero de .Net Framework )
« Respuesta #20 en: 14 Abril 2016, 19:51 pm »

estoy haciendo lo siguiente añado la referencia

Declaro una variable
Código
  1. Dim prueba As Elektro.Net.Tools.NetworkUtil

prueba me sale sin ningun metodo ni propiedad... que puede estar pasando toy con vs2015

Hola

No sale ningún miembro por que no le has asignado ningún valor a dicha variable (es una referecia nula), pero de todas formas la clase Elektro.Net.Tools.NetworkUtil no es instanciable, por lo que no le encuentro sentido a lo que estás intentando, ¿Cual es tu intención con esa variable?.

Si lo que pretendes es crear una referencia corta del espacio de nombres, entonces puedes hacerlo de la siguiente manera:
Código
  1. Imports prueba = Elektro.Net.Tools.NetworkUtil
  2.  
  3. Public NotInheritable Class Form1 : Inherits Form
  4.  
  5.    Private Sub Test() Handles MyBase.Load
  6.  
  7.        Dim ip As String = prueba.GetPublicIp()
  8.        Console.WriteLine(ip)
  9.  
  10.    End Sub
  11.  
  12. End Class

PD: Las clases que son instanciables están en los nombres de espacios que empiezan por: Elektro.X.Types (en este caso Elektro.Net.Types), y las que no son instanciables están en los espacios de nombre que empiezan por: Elektro.X.Tools (en este caso Elektro.Net.Tools).

Espero que te sirva de ayuda!

Saludos


« Última modificación: 14 Abril 2016, 20:32 pm por Eleкtro » En línea

TrashAmbishion


Desconectado Desconectado

Mensajes: 755


Ver Perfil
Re: ElektroKit Framework v1.5 | ( Complementos para el núclero de .Net Framework )
« Respuesta #21 en: 15 Abril 2016, 19:18 pm »

El ejemplo de NetWorkTrafficMonitor cuando lo cargo en el VS2010 de mi trabajo me da 1 error.......

Error   1

'Elektro.Net.Types.NetworkTrafficMonitor.Protected Friend Event TrafficChanged(sender As Object, e As Elektro.Net.Types.TrafficChangedEventArgs)' is not accessible in this context because it is 'Protected Friend'.

Salu2


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: ElektroKit Framework v1.5 | ( Complementos para el núclero de .Net Framework )
« Respuesta #22 en: 15 Abril 2016, 19:41 pm »

@TrashAmbishion

'Elektro.Net.Types.NetworkTrafficMonitor.Protected Friend Event TrafficChanged(sender As Object, e As Elektro.Net.Types.TrafficChangedEventArgs)' is not accessible in this context because it is 'Protected Friend'.

Has descubierto un bug de diseño. Por algún motivo le cambié la visibilidad al evento (no se por qué lo hice, despues de haberlo testeado y haber escrito el ejemplo que estuviste intentado usar xD).

Si quieres puedes recompilar tu mismo la libería, solo tienes que buscar la clase NetworkTrafficMonitor y modificar la visibilidad del miembro...

de:
Código
  1. Protected Friend Event TrafficChanged As EventHandler(Of TrafficChangedEventArgs)

a:
Código
  1. Public Event TrafficChanged As EventHandler(Of TrafficChangedEventArgs)

De todas formas, aquí te subo la librería ya corregida y con algunos otros cambios:
(Elektro.Net.dll v1.6 BETA; .NetFx4.0; AnyCPU\Debug)



Y aquí tienes un ejemplo de uso (actualizado):

Código
  1. Imports Elektro.Net.Enums
  2. Imports Elektro.Net.Tools
  3. Imports Elektro.Net.Types
  4.  
  5. Public NotInheritable Class Form1 : Inherits Form
  6.  
  7.    Friend WithEvents NetMon As NetworkTrafficMonitor
  8.  
  9.    Private Sub Form1_Shown() Handles MyBase.Shown
  10.        Me.InitializeNetMon()
  11.    End Sub
  12.  
  13.    Private Sub InitializeNetMon()
  14.  
  15.        Try
  16.            If Not NetworkTrafficMonitor.GetAvaliableInterfaceNames.Any() Then
  17.                Throw New Exception("Any available network interface found.")
  18.  
  19.            Else
  20.                Me.NetMon = New NetworkTrafficMonitor(NetworkTrafficMonitor.GetAvaliableInterfaceNames.First())
  21.                Me.NetMon.UpdateBehavior = TrafficMonitorUpdateBehavior.FireAlwaysAfterTick
  22.                Me.NetMon.UpdateInterval = 1000 ' 1 sec
  23.                Me.NetMon.Start()
  24.  
  25.            End If
  26.  
  27.        Catch ex As Win32Exception When ex.ErrorCode = -2147467259
  28.            MessageBox.Show("Cannot initialize network monitor. Ensure to enable performance counters service.", "",
  29.                            MessageBoxButtons.OK, MessageBoxIcon.Error)
  30.  
  31.        Catch ex As Exception
  32.            Throw
  33.  
  34.        End Try
  35.  
  36.    End Sub
  37.  
  38.    ''' ----------------------------------------------------------------------------------------------------
  39.    ''' <summary>
  40.    ''' Handles the <see cref="NetworkTrafficMonitor.TrafficChanged"/> event of the NetMon instance.
  41.    ''' </summary>
  42.    ''' ----------------------------------------------------------------------------------------------------
  43.    ''' <param name="sender">
  44.    ''' The source of the event.
  45.    ''' </param>
  46.    '''
  47.    ''' <param name="e">
  48.    ''' The <see cref="TrafficChangedEventArgs"/> instance containing the event data.
  49.    ''' </param>
  50.    ''' ----------------------------------------------------------------------------------------------------
  51.    Private Sub NetMon_TrafficChanged(ByVal sender As Object, ByVal e As TrafficChangedEventArgs) _
  52.    Handles NetMon.TrafficChanged
  53.  
  54.        Me.LabelBytesReceived.Text = String.Format("Bytes received: {0} kb", (e.BytesReceived / 1024).ToString("n2"))
  55.        Me.LabelDlSpeed.Text = String.Format("DL Speed: {0} kb/sec", (e.DiffBytesReceived / 1024).ToString("n2"))
  56.  
  57.        Me.LabelBytesSent.Text = String.Format("Bytes sent: {0} kb", (e.BytesSent / 1024).ToString("n2"))
  58.        Me.LabelUlSpeed.Text = String.Format("UL Speed: {0} kb/sec", (e.DiffBytesSent / 1024).ToString("n2"))
  59.  
  60.    End Sub
  61.  
  62.    Private Sub BtDownloadUrl_Click() Handles BtDownloadUrl.Click
  63.  
  64.        Dim url As String = "http://download.thinkbroadband.com/10MB.zip"
  65.        Dim client As New WebClient()
  66.        client.DownloadFileAsync(New Uri(url), Path.GetTempFileName())
  67.  
  68.    End Sub
  69.  
  70.    Private Sub BtPauseMon_Click() Handles BtPauseMon.Click
  71.  
  72.        If Me.NetMon.IsActive Then
  73.            Me.NetMon.Stop()
  74.        Else
  75.            Me.NetMon.Start()
  76.        End If
  77.  
  78.    End Sub
  79.  
  80. End Class

Saludos
« Última modificación: 18 Abril 2016, 10:08 am por Eleкtro » En línea

Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: ElektroKit Framework v1.5 | ( Complementos para el núclero de .Net Framework )
« Respuesta #23 en: 16 Abril 2016, 10:12 am »

Hola elektro

Me ha surgido el siguiente problema con Elektro.Kit

Código:
El ensamblado al que se hace referencia "Elektro.Net" no se pudo resolver Advertencia 1 El ensamblado al que se hace referencia "Elektro.Net" no se pudo resolver porque tiene una dependencia de "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" que no se encuentra en la versión de .NET Framework de destino actual ".NETFramework,Version=v4.0,Profile=Client". Quite las referencias a ensamblados que no se encuentran en la versión de .NET Framework de destino o cambie el destino del proyecto. WindowsApplication1

s2s

Añado...
Versión utilizada: VB2010 (posiblemente sea el problema)
« Última modificación: 16 Abril 2016, 10:43 am por Lekim » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: ElektroKit Framework v1.5 | ( Complementos para el núclero de .Net Framework )
« Respuesta #24 en: 16 Abril 2016, 12:02 pm »

Lekim, me gustaría poder ayudarte pero ese problema no tiene relación con mi librería, es un problema de referencias de las librerías de .Net Framework.

Cómo indica en el warning, estás focalizando hacia la versión compacta (o 'perfil cliente') de los runtimes de .NetFx 4.0, lo que deberías hacer para resolverlo creo que ya lo sabes, debes focalizar a la versión completa en tu proyecto, y para ello debes tener instalada la versión completa de los runtimes, además del paquete de focalización para Visual Studio (Microsoft Multi-Targeting for .NET Framework 4, eso estando en VS2010 claro, en versiones superiores no es necesario), o simplemente podrías intentar descargar/obtener la librería System.web.dll (versión completa) y referenciar manualmente dicha librería en tu proyecto.

De todas formas, respecto a mi librería Elektro.Net.dll, deberías poder ignorar (y ocultar) el warning sin problema alguno, puesto que deberías poder utilizar todos los miembros del namespace Elektro.Net excepto aquellos que referencien miembros de la versión completa de System.Web.dll (que serán apenas 2 o 3 métodos de la clase Elektro.Net.Tools.WebUtil).

Saludos
« Última modificación: 16 Abril 2016, 12:07 pm por Eleкtro » En línea

Lekim

Desconectado Desconectado

Mensajes: 268



Ver Perfil
Re: ElektroKit Framework v1.5 | ( Complementos para el núclero de .Net Framework )
« Respuesta #25 en: 16 Abril 2016, 13:53 pm »

...simplemente podrías intentar descargar/obtener la librería System.web.dll (versión completa) y referenciar manualmente dicha librería en tu proyecto

Pues eso hice, pero aún así persistía el problema. Lo que quería usar era Elektro.Net.Enums.GoogleLanguage.

El caso es que este problema me ha servido para aprender actualizar el Framework de versiones viejas de VB.NET incluso en SO como XP. Y se soluciona el problema. Ya no da error.

Ahora mismo estoy haciendo un tutorial, que colgaré en el foro, útil para los que usen vb2010 o vb2012. Muy curioso.

Por cierto, Net simplemente deshabilitaba el Elektro.kit, con lo cual tengo que referenciarlo de nuevo.

La verdad es que el truquillo podría explicarse en tres líneas, pero creo que vale la pena explicarlo al detalle y con imágenes.



« Última modificación: 16 Abril 2016, 13:59 pm por Lekim » En línea

TrashAmbishion


Desconectado Desconectado

Mensajes: 755


Ver Perfil
Re: ElektroKit Framework v1.5 | ( Complementos para el núclero de .Net Framework )
« Respuesta #26 en: 16 Abril 2016, 16:46 pm »

Excelente,

Las modificaciones dieron resultados nada mas me dio un error a la hora de detectar el adaptador.

Cambio reciente:

Código
  1. NetworkTrafficMonitor.GetAvaliableInterfaceNames.Any()

Esto no rula algo pasa con esa función de arriba.

Código
  1. Me.netMon = New NetworkUtil.NetworkTrafficMonitor(NetworkTrafficMonitor.GetAvaliableInterfaceNames.First)

Ok, con la línea de arriba toma el 1er adaptador en mi caso "isatap" y trata de trabajar con él, ahora no recuerdo si brinca porque no lo logra o si es porque el valor que espera es un integer despues aclaro esto.

Solución que tome para mi caso muy particular, cargue los adaptadores en un listbox emparejado con su indice porque el espera un integer.

Listo todos los adaptadores

Código
  1.    For Each adpcont In NetworkTrafficMonitor.GetAvaliableInterfaceNames
  2.  
  3.    Next

Y al selecionarlo se lo paso:

Código
  1.     Me.NetMon = New NetworkTrafficMonitor(NetworkTrafficMonitor.GetAvaliableInterfaceNames(adpcont))
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: ElektroKit Framework v1.5 | ( Complementos para el núclero de .Net Framework )
« Respuesta #27 en: 16 Abril 2016, 19:19 pm »

No hay ningún error en lo que comentas, pero creo que existe algo de malentendimiento por tu parte sobre el manejo de colecciones genéricas en general, te explico:

La extensión de LINQ IEnumerable.Any() (en: GetAvailableInterfaceNames().Any()) sirve para evaluar si una colección enumerable está vacía, la extensión Any() devolverá True si está vacía, de lo contrario, False.
¿Qué problema le encuentras?, "no rula" puede significar mil cosas distintas, intenta ser más específico.

El único motivo por el cual la extensión Any() podría dar una excepción, sería al utilizar dicha extensión para evaluar una colección nula (Nothing), pero si observamos el código fuente de mi función, podemos comprobar que en ningun caso se devuelve una colección nula:

Cita de: ElektroKit
Código
  1. Public Shared Function GetAvailableInterfaceNames() As IEnumerable(Of String)
  2.  
  3.    If PerformanceCounterCategory.Exists("Network Interface") Then
  4.        Return New PerformanceCounterCategory("Network Interface").GetInstanceNames()
  5.  
  6.    Else
  7.        Return Enumerable.Empty(Of String)()
  8.  
  9.    End If
  10.  
  11. End Function



Mi función GetAvailableInterfaceNames() devuelve una colección enumerable, por lo que efectivamente, como toda otra colección/Array, tiene un indexer que puedes utilizar para especificar un elemento de la colección (es decir, un nombre de adaptador) según el índice, por ejemplo: Dim adapterName As String = GetAvailableInterfaceNames(2).

La extensión de LINQ IEnumerable.First() devuelve el primer elemento de una colección. Recuerda que el código de ejemplo es eso, un ejemplo que toma la primera interfaz de red encontrada (asumiendo que existe al menos una) con: GetAvailableInterfaceNames().First().

Saludos
« Última modificación: 16 Abril 2016, 22:39 pm por Eleкtro » En línea

TrashAmbishion


Desconectado Desconectado

Mensajes: 755


Ver Perfil
Re: ElektroKit Framework v1.5 | ( Complementos para el núclero de .Net Framework )
« Respuesta #28 en: 18 Abril 2016, 05:33 am »

Hola,

Reformulando la respuesta...

Esa línea trabaja bien lo que sucede es que devuelve "true" y entra a

Código
  1. Throw New Exception("Any available network interface found.")

En la ventana de Inmediato le hice un print a:

Código
  1. ? NetworkTrafficMonitor.GetAvaliableInterfaceNames.First()

Y me devuelve "isatap.{7F59D061-64A2-4292-B817-69CFF83CE3A8}", entonces le hice un For Each para ver todos los valores que tenía y me mostró todos los adaptadores incluyendo la tarjeta de red Realtek.

Asi que le quite ese If y lo adapté como habia comentado anteriormente...

Disculpa la mala explicación..

Salu2
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: ElektroKit Framework v1.5 | ( Complementos para el núclero de .Net Framework )
« Respuesta #29 en: 18 Abril 2016, 10:10 am »

Hola,

Reformulando la respuesta...

Esa línea trabaja bien lo que sucede es que devuelve "true" y entra a

Código
  1. Throw New Exception("Any available network interface found.")

Coño, que despiste, tienes razón, en el código de ejemplo evaluo si es igual a True, cuando debería evaluar si es igual a False, para lanzar la excepción.

Ahora entiendo a lo que te refieres, disculpa. Ya está corregido, simplemente hay que añadirle un Not a la condicional:
Citar
Código
  1. If Not NetworkTrafficMonitor.GetAvaliableInterfaceNames.Any() Then
  2.                Throw New Exception("Any available network interface found.")

Saludos!
« Última modificación: 18 Abril 2016, 10:12 am por Eleкtro » En línea

Páginas: 1 2 [3] 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Un .NET framework para linux
.NET (C#, VB.NET, ASP)
BADBYTE-K 3 9,177 Último mensaje 2 Junio 2006, 20:59 pm
por SeniorX
Framework para PHP
PHP
zimio 5 3,223 Último mensaje 1 Julio 2008, 21:01 pm
por FeArX
Framework para Proyecto PHP « 1 2 »
PHP
19.5 12 9,836 Último mensaje 6 Febrero 2009, 21:16 pm
por pablopazos
NovaXplosion Framework - Framework de pentest [Unete al desarrollo!] « 1 2 3 »
Java
Debci 24 15,398 Último mensaje 28 Enero 2010, 18:00 pm
por Debci
Manual 02 para aprender YII FRAMEWORK [ Instalacion de Mbmenu en YII FRAMEWORK]
PHP
Graphixx 0 5,728 Último mensaje 10 Noviembre 2011, 19:43 pm
por Graphixx
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines