Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#591
Cita de: **Aincrad** en 28 Diciembre 2018, 02:53 AM
'HttpUtility' no está declarado. Puede que esté inaccesible debido a su nivel de protección.
debo importar algo?

Sí, debes añadir una referencia el ensamblado System.Web.dll, e importar el espacio de nombres System.Web.

Si colocas el puntero del ratón sobre el nombre "HttpUtility" en esa linea de código que te da error, Visual Studio te dice el ensamblado que debes referenciar. Al menos en Visual Studio 2013, 2015 y 2017; no recuerdo si en VS 2010 también.




Cita de: **Aincrad** en 28 Diciembre 2018, 02:53 AMse blockea un poco al principio cuando esta obteniendo los datos. me puedes ayudar con eso?

WebClient.DownloadString y WebClient.DownloadFile son métodos sincrónicos, o lo que se conoce como una llamada bloqueante. Debido a que estás llamando a ese método en el thread de la UI, la UI se "bloquea" hasta que el método haya finalizado su ejecución (conectar con el servidor, procesar la query, esperar la respuesta del servidor, etc...) y eso dura un par de segundos... en los que la UI deja de procesar mensajes de ventana.

Para solucionarlo, debes hacer uso de programación asíncrona, y para ello practicamente debes modificar casi todo tu algoritmo. Para empezar, debes usar los métodos asíncronos de la clase WebClient. Puedes recurrir a dos metodologías distintas:

1. Usar los métodos WebClient.DownloadStringAsync() y WebClient.DownloadFileAsync, y suscribirte a los eventos WebClient.DownloadStringCompleted y WebClient.DownloadFileCompleted.

2. Usar las funciones WebClient.DownloadStringTaskAsync() y WebClient.DownloadFileTaskAsync, junto al uso de los operadores Async y Await.

La segunda metodología es más simple/sencilla de aplicar, requiere menos cambios en el código original. Lamentablemente en .NET 4.0 no puedes aplicar dicha metodología, puesto que las funciones mencionadas no están disponibles. Así que estás limitado a tener que recurrir a la primera metodología.

Aquí tienes la documentación oficial del método WebClient.DownloadStringAsync():

Y aquí un ejemplo de código:

PD: el modo de empleo del método WebClient.DownloadFileAsync es practicamente igual que en el ejemplo provisto, solo cambia el nombre del evento al que debes suscribirte, el cual ya mencioné.

Un saludo.




EDITO: bueno, por si al final te resulta dificil el uso de WebClient.DownloadStringAsync(), y cómo alternativa, la opción más sencilla y cutre para resolver el problema con el mínimo de cambios requeridos en tu código actual, sería de la siguiente forma:

Código (vbnet) [Seleccionar]
Private Sub descarga(ByVal url As String)

   Dim isCompleted As Boolean

   Dim t As New Task(
       Sub()
           Try
               Dim URLDATA As String = cliente.DownloadString(url)
               Me.Invoke(Sub()
                             TextBox2.Text = URLDATA
                             If TextBox2.Text = "" Then
                                 alert("error", "No response was obtained from the server.")
                             Else
                                 alert("alert", "Data Obtained, Descripting ...")
                             End If
                         End Sub)
           Catch ex As Exception
               Me.Invoke(Sub() alert("error", ex.Message))

           Finally
               isCompleted = True
           End Try
       End Sub)

   t.Start()

   Do Until isCompleted
       Application.DoEvents()
   Loop

End Sub


...pero el uso de ese código implica malas prácticas de programación, tenlo en cuenta.
#592
Residuos, residuous y más residuos...

https://wattsupwiththat.com/2010/04/09/an-error-in-the-pole-hole-assumption/


"Globe Centred On The North Pole, True Colour Satellite Image. True colour satellite image of the Earth centred on the North Pole - Image ID: E4DX4C"
https://www.alamy.com/stock-photo-globe-centred-on-the-north-pole-true-colour-satellite-image-true-colour-71605980.html


"Foto de archivo - Tierra se centró en el Polo Norte se ve desde el espacio. Países que son vistos incluyen EE.UU. (Estados Unidos de América), Canadá y México. "
https://es.123rf.com/photo_64867517_tierra-se-centr%C3%B3-en-el-polo-norte-se-ve-desde-el-espacio-pa%C3%ADses-que-son-vistos-incluyen-ee-uu-estados-uni.html


"Existe más fitoplancton debajo de la capa de hielo ártica de lo que se pensaba"
http://www.nat-n-bio.santotomas.edu.bo/category/calentamiento-global/page/2/


"New Snow and Ice Data for Google Earth"
https://www.gearthblog.com/blog/archives/2007/03/new_snow_and_ice_dat.html


"Record Low Arctic Sea Ice Extent for January"
https://earthobservatory.nasa.gov/images/49132/record-low-arctic-sea-ice-extent-for-january


"Here is the view of the North pole today, as reported by the National Snow and Ice Data Center (NSIDC):"
https://wattsupwiththat.wordpress.com/2017/08/31/arctic-climate-explorers-give-up-sailing-to-the-north-pole-because-theres-too-much-ice/


ojito con esa última imagen y su artículo, son del año 2017. Para los que crean que simplemente toda esa masa de hielo del continente ártico se ha descongelado por causa del "Calentamiento Global" o cosas parecidas por arte de mágia. Eso no se ha escuchado nunca en las noticias, al menos no en mi realidad, me refiero al posible derretimiento del Polo Norte al completo, es de locos, aunque más de locos es que directamente el Polo Norte no exista como tal en esta realidad.

¿Qué le está pasando al universo en el que vivimos?.   :(













La realidad de este mundo...

Google Maps / Google Earth
https://www.google.com/maps/place/North+Pole,+Alaska+99705,+EE.+UU./@68.6310198,-122.2288974,5533068m/data=!3m1!1e3!4m5!3m4!1s0x51324d51d5c5f2b9:0xda1a7714d9d98964!8m2!3d64.7511111!4d-147.3494443


Wikipedia
https://en.wikipedia.org/wiki/North_Pole
#593
Es Navidad, pero lamentablemente para estas fechas les traigo lo que quizás para algunos sea una triste noticia, mientras que para otros simplemente sea una broma de mal gusto, o una enfermedad mental de locos... una creencia imposible de creer.

Empezaré con una serie de preguntas. ¿Cuantos de ustedes estudiaron de pequeños la ubicación del Polo Norte y Polo Sur en mapas mundi, la enciclopedia Encarta, y mapas en general?. ¿Y si les digo que esa gigantesca masa de hielo que ustedes conocían como Polo Norte, la cual estaba situada arriba de los Estados Unidos, justo arriba de Canadá y al lado de Groenlandia, ha dejado de existir en esta realidad?...

¿Cuantos de ustedes recuerdan a la perfección la existencia del Polo Norte como tal, con su gigantesca forma geográfica y su ubicación en el mapa?. Es algo que una vez aprendido no se olvida, cómo tampoco se puede olvidar la ubicación y la forma de nuestro propio país, o nuestro nombre como individuo. El Polo Norte siempre fue una zona muy característica precisamente por estar cubierta de hielo, y ser gigantesca, mucho, más que el Polo Sur. También por ser donde "vive" Santa Claus.

Pero muchos no pueden recordar que el Polo Norte existió, en realidad no es que no lo recuerden, es que para ellos nunca existió en esta realidad, por que la realidad ha vuelto a cambiar debido al conocido Efecto Mandela, y a muchos nos ha vuelto a afectar, por que muchos de nosotros somos capaces de recordar aquello que para nosotros literálmente ha desaparecido de esta realidad, mientras que para otros muchos nunca ha existido. Ninguno se equivoca, ni los que afirman su existencia, ni los que la niegan, en realidad ambos tipos de personas llevan parte de razón, por que nuestras realidades son distintas.




Me siento en el deber moral de intentar transmitir este mensaje a aquella gente que sabe que la existencia del Polo Norte es real, o mejor dicho, lo fue, por que ya no lo es. Al resto de gente, es decir, a los escépticos del Efecto Mandela no me dirijo, por que se que intentar convencerles de algo tan increible es perder el tiempo, y solo me acusarían de loco. Tener que llevar este estigma del cambio de la realidad en solitario es muy duro, como para encima iniciar disputas con gente escéptica que no puede considerar la idea de que realmente la realidad haya cambiado (aunque no sea su realidad la que haya cambiado, sino la de otros) y tener que escuchar cosas cómo "Falsa Memoria"... ningún argumento mio les serviría, por que esto no se puede demostrar mediante argumentos.

Se conoce cómo 'Efecto Mandela' a la percepción de un cambio en la realidad en la que vivimos, en este mundo/universo. No se sabe por que motivo ocurre, aunque hay muchas hipótesis de todo tipo, desde estar viviendo en una simulación de algún tipo (al estilo Matrix), hasta que podría ser causa directa o indirecta de los experimentos científicos del CERN, como por ejemplo algún tipo de efecto desconocido entre (¿colisiones? de) universos paralelos.
Pueden informarse un poco más en la Wikipedia: https://rationalwiki.org/wiki/Mandela_effect

Hay cientos de "efectos mandela" conocidos, me refiero, cambios de la realidad. No todos tienen por que ser ciertos, seguramente hay muchos que si se traten de "falsas memorias" o simplementre bromas de trolls, y no todos los "efectos mandelas" tienen por que afectar a tu realidad, es algo imposible de saber con nuestros conocimientos actuales, por que para empezar no sabemos ni lo que son, ni por que ocurren, lo único que sabemos es que sus efectos implican un cambio en la realidad, algo que antes era de una forma, y ahora es distinta, o como ha pasado con el Polo Norte, que antes existía, pero ya no existe. Tampoco es posible explicar por que la realidad no cambia para todas las personas de este mundo. Lo único que somos capaces de hacer cómo individuos, es percibir estos cambios en la realidad, para saber cual de esos supuestos cambios en la realidad es real por que haya afectado directamente a nuestra realidad.

Se conoce como "residuos" a las posibles evidencias que el Efecto Mandela deja tras un cambio en la realidad, son el único recurso que la gente tiene para intentar demostrar la veracidad del cambio en esta realidad. Cómo sería en este caso del Polo Norte, poder encontrar documentales televisivos y mapas antiguos que detallan a la perfección su forma geográfica:

[youtube=640,360]https://www.youtube.com/watch?v=U3OiubcLtJI[/youtube]

[youtube=640,360]https://www.youtube.com/watch?v=f_otHHzgI2M[/youtube]

Así como miles, miles y miles de testimonios que afirman estos cambios en la realidad... incluso de gente que nunca habia escuchado hablar sobre esto del Efecto Mandela, y que por ende, es imposible que hayan sido influenciados por creencias extrañas, como es el caso de esta chica que se dió cuenta por ella misma de que el Polo Norte dejó de existir en su realidad:

[youtube=640,360]https://www.youtube.com/watch?v=tq8Xl7pI0U0&t=631s[/youtube]


O diversas publicaciones en Reddit de gente debatiendo al respecto...


La cosa va algo más lejos en este Efecto Mandela del Polo Norte, pues la gente que ha sido afectada por este cambio en la realdiad afirma que, además de haber existido la masa de hielo del Polo Norte, cosa obvia e irrefutable para todos los que hemos sido afectados, pero algunas personas además afirman que en Google Earth y Google Maps se podía ver perfectamente el Polo Norte. Yo sinceramente no me acuerdo de esto a la perfección, así que no puedo caer en el error de defender las afirmacioens de estas personas, aunque sería lógico que si que estuviese representado el Polo Norte mediante imágenes satelitales por que... en fin, ese es el propósito de estas aplicacioens de Google, representar el planeta tierra, ¿no?. Pues bien, hay videos algo conspiranoicos como el siguiente video en el que se habla de supuestas evidencias:

[youtube=640,360]https://www.youtube.com/watch?v=OvQz1dqkjIc[/youtube]

...raro es, ya no por el hecho de que esa linea esté ahí, que si podría ser la forma en que se juntan las imágenes de Google y blah blah blah, yo ahí no me meto por que no se por qué motiva esa linea está ahí, lo raro es que en toda esa linea se puede ver hielo, cuando en teoría se debería ver agua, ¿no?.

...y en fin, que si se quieren ifnormar, pueden buscar todo tipo de material informativo y opiniones sobre este y cualquier otro Efecto Mandela en Internet. Quizás descubran supuestos cambios en la realidad que les haya afectado a ustedes.

Esto es todo.

Este mensaje no tiene la intención de iniciar ningún debate sobre la veracidad del Efecto Mandela, aunque son libres de opinar, claro está, pero mi intención es informar a toda esa gente que por un motivo u otro no se haya dado cuenta todavía de que el Polo Norte ha dejado de existe en su realidad, y que sepan un poco la información e hipótesis que la humanidad tiene sobre este efecto.

Un saludo.
#594
Te respondo por aquí al privado...

en esta parte de tu código obtienes una respuesta con un documento en JSON:

Código (vbnet) [Seleccionar]
Dim URLDATA As String = cliente.DownloadString(url)
TextBox2.Text = URLDATA


Mediante el ejemplo que te mostré, deserializas ese JSON, tal que así:

Cita de: Elektro
Código (vbnet) [Seleccionar]
   <Serializable>
   Public NotInheritable Class MyType
       Public Property [Error] As Boolean
       Public Property Title As String
       Public Property Duration As Integer
       Public Property File As String
   
       Public Sub New()
       End Sub
   
       Public Overrides Function ToString() As String
           Return New JavaScriptSerializer().Serialize(Me).ToString
       End Function
   End Class

Código (vbnet) [Seleccionar]
Dim obj As MyType = New JavaScriptSerializer().Deserialize(Of MyType)(URLDATA)

Y por último, en la propiedad MyType.File tienes la url al archivo .mp3 que puedes descargar, por ejemplo usando la función cliente.DownloadFile().

Código (vbnet) [Seleccionar]
cliente.DownloadFile(obj.File, IO.Path.GetFileName(obj.File))




No tiene que ver con el tema, pero ya que estás abierto a escuchar críticas, pues acabo de fijarme en esta parte del código donde usas esta expresión regular...

Citar
Código (vbnet) [Seleccionar]
   Private Function getID(ByVal url As String) As String 'Function by Stack Overflow Forum.
       Try

           Dim myMatches As System.Text.RegularExpressions.Match
           Dim MyRegEx As New System.Text.RegularExpressions.Regex("youtu(?:\.be|be\.com )/(?:.*v(?:/|=)|(?:.*/)?)([a-zA-Z0-9-_]+)", RegexOptions.IgnoreCase) 'This is where the magic happens/SHOULD work on all normal youtube links including youtu.be
           myMatches = MyRegEx.Match(url)
           If myMatches.Success = True Then
               Return myMatches.Groups(1).Value
           Else
               Return ""
           End If
       Catch ex As Exception
           Return ex.ToString
       End Try
   End Function

y... bueno. Me limitaré a decir que copiar cosas publicadas por programadores random de Internet con conocimientos mediocres sobre el lenguaje que están manipulando, conlleva a aprender y acostumbrarse a malas prácticas de programación.

En no pocas ocasiones, el uso de expresiones regulares es un planteamiento totálmente innecesario y con un margen de error (falsos positivos y fallos de captura) que puede llegar a ser excesivamente elevado, y por ende, intolerablemente ineficiente. Aparte, si ya de por sí el motor RegEx de .NET (y de cualquier otro) supone un impacto negativo en el rendimiento de la aplicación, las expresiones regulares complejas son sinónimo de un impacto negativo aun mayor.

(en tu aplicación el impacto será inapreciable, insignificante. No es algo de lo que debas preocuparte, pero yo siempre hablo en términos generales.)

RegEx es el recurso fácil y multi-usos. En muchas ocasiones es tan fácil de aplicar una expresión regular que nos olvidamos de que podemos hacer las cosas de forma más eficiente... aunque no será posible hacerlo mejor en todos los casos, pero en muchos sí, cómo este.

A continuación te mostraré como puedes y deberías obtener la id de un video de Youtube usando los miembros built-in más apropiados disponibles en la librería de clases de .NET Framework sin tener que recurrir al uso de expresiones regulares.

Bueno, primero estas funciones reutilizables que he escrito:

Código (vbnet) [Seleccionar]
Public Shared Function GetQuery(ByVal url As String) As NameValueCollection
   Return GetQuery(url, Encoding.UTF8)
End Function

Public Shared Function GetQuery(ByVal url As String, ByVal enc As Encoding) As NameValueCollection
   Return GetQuery(New Uri(url), enc)
End Function

Public Shared Function GetQuery(ByVal uri As Uri) As NameValueCollection
   Return GetQuery(uri, Encoding.UTF8)
End Function

Public Shared Function GetQuery(ByVal uri As Uri, ByVal enc As Encoding) As NameValueCollection
   Dim queryString As String = uri.GetComponents(UriComponents.Query, UriFormat.UriEscaped)
   Return HttpUtility.ParseQueryString(queryString, enc)
End Function


Y entonces...
Código (vbnet) [Seleccionar]
Dim query As NameValueCollection = GetQuery("https://www.youtube.com/watch?v=FtcVlSytJF4&feature=em-uploademail")
Dim id As String = query("v")
If String.IsNullOrEmpty(id) Then
   Throw New NullReferenceException()
Else
   ' ...
End If


PD: cabría destacar que, Microsoft, para algunas implementaciones internas hace uso de la clase RegEx, pero usar cualquier miembro de la librería de clases de .NET Framework cuya implementación interna recurra al uso de expresiones regulares, siempre será mejor opción y más seguro que implementar tu propio algoritmo 'home-made' de análisis de string mediante expresiones regulares aleatorias cuya eficacia en no pocas ocasiones es más que cuestionable de lo ofusca que es su sintaxis o los ejemplos de captura (si es que el autor proporciona alguno)...

Saludos.
#595
Cita de: **Aincrad** en 27 Diciembre 2018, 00:24 AM
te envié el proyecto por priv,

En tu proyecto falta que añadas una referencia al ensamblado que te dije: System.Web.Extensions.dll. Una vez añadida la referencia, se puede utilizar la clase JavaScriptSerializer.

Dirígete a la pestaña "Referencias" y añade la maldita librería. xD

Saludos
#596
¿Puedes mostrar la pestaña "Referencias" o en su defecto pasarme el proyecto?.
#597
Vuelve a leer por favor:

Cita de: ElektroAsegúrate de haber añadido una referencia al ensamblado con nombre 'System.Web.Extensions', e importar el espacio de nombres 'System.Web.Script.Serialization'.

El espacio de nombres que aparece en la imagen que has mostrado, no es el que he mencionado que debes importar. Y antes de poder importarlo, debes añadir una referencia al ensamblado que también mencioné.

Acabo de compilar en .NET 4.0 el código que mostré, y funciona perfectamente. Por otro lado, la clase JavaScriptSerializer NO está disponible en .NET 4.0 Client Profile. En resumen, el código lo puedes compilar con .NET 4.0 sin problemas, pero no lo puedes compilar en .NET 4.0 Client Profile.

Feliz Navidad.
#598
Cita de: **Aincrad** en 26 Diciembre 2018, 22:22 PMGracias de responder como siempre @Elektro, pero estoy trabajando con .net framework 4.0 , en vs 2010.

Según la documentación oficial, la clase JavaScriptSerializer está disponible a partir de .NET 3.5, por lo tanto no deberías tener problema...
https://docs.microsoft.com/en-us/dotnet/api/system.web.script.serialization.javascriptserializer?view=netframework-4.7.2
Asegúrate de haber añadido una referencia al ensamblado con nombre 'System.Web.Extensions', e importar el esapacio de nombres 'System.Web.Script.Serialization'.

Cita de: **Aincrad** en 26 Diciembre 2018, 22:22 PMNo es posible mejor desglosarlo todo como si se estuviera leyendo un .ini?.

Poder se puede, pero resultaría muy tedioso. Algo muy sencillo sería partir la cadena de texto usando la coma "," como caracter delimitador, con esto obtienes un array, entonces, cada elemento del array lo volverías a partir usando esta vez el caracter ":" como delimitador, y así obtener el nombre y el valor de cada cosa (ej: {"duration", "218"}), pero esto que en principio parece muy sencillo te podría dar problemas si el campo "title" contiene cualquiera de esos dos caracteres, por lo que habría que ingeniárselas mejor, y de ahí que sea tedioso. Sería mejor usar RegEx para capturar los valores (escritos entre comillas), pero no estoy por la labor de ponerme a construir una expresión regular, pudiendo recurrir a soluciones sofisticadas como la clase JavaScriptSerializer, o la librería JSON.NET.

Un saludo.
#599
El formato se conoce como JSON.

Teniendo un string JSON como este (el cual he formateado para que sea legible, pero no es necesario hacerlo):
Código (vbnet) [Seleccionar]
Dim jsonStr As String =
   <json>
   {
      "error":false,
      "title":"Alan Walker - Diamond Heart (feat. Sophia Somajo)",
      "duration":218,
      "file":"http:\/\/michaelbelgium.me\/ytconverter\/download\/sJXZ9Dok7u8.mp3"
   }
   </json>.Value


Si quieres llevar a cabo una conversión genérica, me refiero, de uso reutilizable, entonces:
Código (vbnet) [Seleccionar]
Dim dict As Dictionary(Of String, Object) =
   New JavaScriptSerializer().Deserialize(Of Dictionary(Of String, Object))(jsonStr)

...
Código (vbnet) [Seleccionar]
For Each item As KeyValuePair(Of String, Object) In dict
   Console.WriteLine("{0}: {1}", item.Key, item.Value.ToString())
Next item

...
Código (vbnet) [Seleccionar]
Console.WriteLine(CBool(dict("error")))
Console.WriteLine(CStr(dict("title")))
Console.WriteLine(CInt(dict("duration")))
Console.WriteLine(CStr(dict("file")))


Si por lo contrario quieres una solución adaptada al string JSON que has mostrado, entonces:
Código (vbnet) [Seleccionar]
<Serializable>
Public NotInheritable Class MyType
   Public Property [Error] As Boolean
   Public Property Title As String
   Public Property Duration As Integer
   Public Property File As String

   Public Sub New()
   End Sub

   Public Overrides Function ToString() As String
       Return New JavaScriptSerializer().Serialize(Me).ToString
   End Function
End Class

...
Código (vbnet) [Seleccionar]
Dim obj As MyType = New JavaScriptSerializer().Deserialize(Of MyType)(jsonStr)
Console.WriteLine(obj.ToString())


PD: Para soluciones algo más sofisticadas siempre puedes utilizar la librería gratuita JSON.NET (la cual usan empresas tan profesionales como Google y Microsoft para algunas de sus APIs para .NET).

Saludos.
#600
S.M.A.R.T. API for .NET






Descripción

S.M.A.R.T. API es un proyecto simple y educativo para ilustrar cómo obtener la información S.M.A.R.T. de un disco duro utilizando código administrado en .NET. El código fuente está escrito en VB.NET.

El código fuente es completamente reutilizable, personalizable y escalable. Puede copiarlo y pegarlo en sus propios trabajos.




Limitaciones

Este programa no pretende ser una herramienta profesional de información S.M.A.R.T.

Debido a que la representación de los valores en crudo (RAW) específicos del proveedor siempre necesita investigación por parte del programador para saber como se debe representar, esta herramienta tiene lo que podríamos considerar una limitación en el sentido de ser incapaz de determinar cuándo un valor en crudo específico del proveedor debe representarse como un valor de 64, 48 o 32 bits, porque eso es trabajo del propio desarrollador. Esto es normal y comprensible, porque como ya mencioné, esta aplicación no pretende ser una herramienta profesional.

Por lo dicho, mi implementación intenta facilitar esta tarea al proporcionar propiedades para mostrar el valor en crudo en diferentes representaciones.

De todos modos, casi todos los valores en crudo específicos del proveedor son valores de 32 bits, que es el tipo de valor predeterminado representado en la interfaz de usuario de esta herramienta.




Capturas de pantalla

 




Donaciones

Cualquier código dentro del espacio de nombres "DevCase" se distribuye libremente como parte del código fuente de "DevCase for .NET Framework" (anteriormente conocido como "ElektroKit Framework for .NET").

Tal vez te gustaría considerar comprar este poderoso conjunto de bibliotecas para apoyarme. Usted puede hacer un montón de cosas con mis API para una gran cantidad de temáticas diversas, no solo relacionadas con los dispositivos, etc.

Aquí hay un enlace a la página de compra:

- https://codecanyon.net/item/elektrokit-class-library-for-net/19260282

Gracias por su consideración.




Menciones Honorables

Créditos a personas que indirectamente me ayudaron a desarrollar esta herramienta.

"TheLegendaryCopyCoder" por ilustrar cómo obtener todos los datos relacionados de la información S.M.A.R.T. a través de WMI:

- https://stackoverflow.com/a/14894138/1248295
- http://www.know24.net/blog/C+WMI+HDD+SMART+Information.aspx

Las respuestas de Reza Aghaei y Simon Mourier, que me resolvieron un problema para construir la representación visual de la manera que quería en la interfaz de usuario del editor de colecciones del control PropertyGrid:

- https://stackoverflow.com/a/53890224/1248295
- https://stackoverflow.com/a/53877310/1248295




Descarga