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

#811
Tan solo tienes que hacer esto:

Código (vbnet) [Seleccionar]
Dim timeDiff As TimeSpan = (DateTimePicker1.Value - DateTimePicker2.Value)
Dim timeFormat As String = timeDiff.ToString("hh\h\:mm") ' 01h:30

Console.WriteLine(timeFormat)


Saludos
#812
Durante los últimos dos meses aproximadamente, la actividad del movimiento terraplanista ha tomado cierta intensidad en España debido a que, a raiz de un comentario público que hizo el astronauta español Pedro Duque para dar a conocer su opinión, han salido varios youtubers terraplanistas (los miserables de siempre, como Oliver Ibañez) a cuestionar el comentario de este astronauta en todos sus videos, tratando de reforzar su absurda hipótesis de La Tierra Plana acusando de mentiroso a este astronauta... y se ha ido generando polémica sobre Pedro Duque y estos conspiranoicos en todos los medios de comunicación.

No voy a explicar más a fondo lo sucedido, pueden investigar y seguro que encontrarán toda la información necesaria.

El caso es que me ha tocado la moral ver como el que quizás sea el youtuber español más conocido de Internet del mundo de la conspiración, Jose Luis Camacho, se ha apuntado al carro de intentar desprestigiar a Pedro Duque y ayer publicó un video en su canal en el que le invita a un debate en su canal de misterios y conspirapollas...

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

( a partir del minuto 11:58 )

...menudo sinvergüenza hijo de **** está hecho el J.L., es evidente que todo lo hace por el dinero y la famita de Youtube, este tio realmente cree tener la oportunidad de poder convencer a un famoso astronauta para invitarlo a su canal y así ganar dinero y visitas y salir en los periódicos... no es listo ni náh.

El problema es que J.L. es un gran manipulador de profesión y solamente espero que Pedro Duque no sea lo suficientemente ingenuo como para dejarse convencer y caer en su juego para debatir con este personaje del mundo de la conspiración, por que este tío no hace nada por la ciencia y el descubrimiento de la verdad, sino por la polémica de la desinformación y los ingresos que le genera, así que sería todo un espectáculo si el debate se llega a realizar.

¿Que opinan ustedes sobe el tema?.

Saludos
#813
Cita de: Machacador en  1 Agosto 2018, 16:27 PMPor opiniones como estas debió ser que tu mujer te mando pal'carajo... jejejejejeeeee...

A ti no te incumbe los motivos de una ruptura entre dos personas, pero por opiniones como estas debió ser que acabaste baneado. (ban temporal, y da gracias)

...¿siguiente usuario con ganas de trollear?.

No se para que algunas personas hacen publicaciones si luego no saben respetar opiniones que estén a favor o en contra por igual, es facil recurrir a la burla y a la ofensa mediante comentarios despectivos, pero parece que es más difícil respetar opiniones que no les gusten mediante el debate sin llegar al insulto personal...

Tema Cerrado.

Saludos.
#814
Hoy en día cuesta diferenciar a una mujer famosa del ojete de un mandril...



Con respecto a Kim cardashian o Kylie Jenner o la que prefieras, yo no entiendo como una mujer con tanta fachada en el cuerpo puede tener millones de seguidores en el mundo que en teoría la adoran y envidian ser como ella, está claro que el mundo entero está lleno de retrasados que ya no solo son superficiales, sino que son penosos en tratar de ser superficiales por que ese tipo de belleza es artificial...y un tanto repugnante. Labios de pato Donald, tetas y culo de goma, en fin... qué lástima de seres humanos.

Saludos.
#815
Cita de: Naimaderis en 30 Julio 2018, 00:27 AM
Entiendo, muchas gracias. ¿El usar .count para ir hasta el largo de la lista es correcto?
¿O seria mas eficiente declararla fuera?

Es lo mismo si usas la propiedad Count o una variable local, no va a influir para nada en el rendimiento.

saludos
#816
Programación General / Re: Iniciando...
29 Julio 2018, 14:45 PM
Sobre electrónica y electromecánica no tengo ni idea aunque mi nickname pueda sugerir lo contrario, pero sé que algo útil para solucionar problemas de la vida real y relacionado con esa parte de la programación que según creo entender quieres reforzar en Windows, sería estudiar un poco sobre la creación de Batch-scripts y también sobre el desarrollo de scripts en el lenguaje Powershell; los he mencionado por orden de dificultad de aprendizaje, pero si prefieres puedes descartar Batch por que al aprender Powershell ya no necesitarías Batch y sin duda Powershell es el lenguaje más útil de los lenguajes de scripting soportados nativamente por Windows (me refiero, sin necesidad de instalar intérpretes de terceros como pasaría si quisieras aprender a programar en Ruby o Python) para ayudarte a resolver cualquier tarea de administración de usuarios, del sistema de archivos de Windows, redes, bases de datos y casi cualquier otra cosa que te pueda dar problemas o que necesites automatizar en las labores cotidianas del día a día de la empresa o del hogar... si quieres algo competente, sofisticado y efectivo para "todo" entonces te sugiero Powershell, si te conformas con una herramienta ineficiente para casi todo pero suficiente para cualquier tarea básica del sistema y además muy facil de aprender, entonces Batch.

Un saludo.
#817
Disculpa la tardanza.

Cita de: #Aitor en 16 Julio 2018, 00:23 AM¿Por qué es necesario poner (RiotSharp.Misc.Region) antes del enum?

Se pone antes del enum por que esa es la sintáctica de C# necesaria para llevar a cabo la conversión de tipos, aunque ya sé que no te refieres a eso, pero recuerda que aunque la enum sea del tipo enumerado RiotSharp.Misc.Region, la función Enum.Parse() devuelve un valor de tipo object, por ende debes castear el valor devuelto al tipo de la enum, es decir de object a RiotSharp.Misc.Region, y por eso debes escribir (RiotSharp.Misc.Region) antes del enum, bueno, no es estrictamente necesario ya que puedes usar var, pero ya expliqué la confusión que el uso de var puede causar y por eso te mostré las dos formas de hacer lo mismo...

Este tipo de dudas se resuelven mejor estudiando los conceptos básicos del lenguaje y practicando, que preguntando.




CitarPor cierto, he visto que la lista del enum tiene un orden que no me gusta, digamos A C B y quisiera A B C, así que pensé en buscar el source del enum y cambiarlo a mi manera

La solución más directa sería esa, pero ten en cuenta que en una enum cada nombre tiene asignado un valor numérico ya sea por declaración explícita (ej. A=1, C=2, B=3) o implícita (ej. A, C, B), así que si cambias el orden original de los nombres en el código fuente y si el autor hace conversiones de números a esa enum esperando cierto valor (que tu habrías cambiado de posición al reordenar la enum) entonces podrías acabar estropeando el funcionamiento de algo...

Lo más simple y seguro es que utilices cualquier funcionalidad de ordenación como podría ser Array.Sort():

Código (csharp) [Seleccionar]
string[] names = Enum.GetNames(typeof(KnownColor));
Array.Sort(names);

foreach (string name in names) {
  Console.WriteLine(name);
}


o puedes usar LINQ si fuese necesario especificar el orden ascendente o descendente de ordenación:

Código (csharp) [Seleccionar]
IOrderedEnumerable<string> names =
   from string name in Enum.GetNames(typeof(KnownColor))
   orderby name descending
   select name;

foreach (string name in names) {
 Console.WriteLine(name);
}


(cosa que también puedes reproducir en el primer ejemplo llamando primero a Array.Sort() y luego a Array.Reverse())

Supongo que para cuando leas mi respuesta ya habrás resuelto el problema de la ordenación de un modo u otro, de lo contrario te sugiero que para la próxima vez trates de buscar en Google por términos clave como podrían ser para este caso: "sort array in C#"

Saludos
#818
¿Buscar y eliminar valores del registro de Windows?, de nuevo te invito a que le eches un ojo a...:


concretamente en el año 2015...


Este código de aquí abajo lo he hecho usando mi librería comercial ElektroKit, lo comento por que los nombres de los miembros de la clase cambian un poco con la clase que publiqué en el año 2015 en ese post, pero supongo que se entenderá igualmente el modo de empleo que se debe aplicar:

Código (vbnet) [Seleccionar]
Imports Microsoft.Win32
Imports ElektroKit.Core.System.Types
Imports ElektroKit.Core.System.Tools


Código (vbnet) [Seleccionar]
Dim regInfos As IEnumerable(Of RegInfo) =
   RegistryUtil.FindValue(RegistryView.Default,
                          rootKeyName:="HKCU",
                          subKeyPath:="Software\Microsoft\Windows\CurrentVersion\Run",
                          valueName:="WScript",
                          matchFullValueName:=False,
                          ignoreCase:=True,
                          searchOption:=SearchOption.TopDirectoryOnly)

For Each regInfo As RegInfo In regInfos
   Dim sb As New StringBuilder()
   sb.AppendLine(regInfo.RootKeyName)
   sb.AppendLine(regInfo.SubKeyPath)
   sb.AppendLine(regInfo.ValueName)
   sb.AppendLine(regInfo.ValueData?.ToString())
   Console.WriteLine(sb.ToString())
Next regInfo


...eso devolvería cualquier valor que contenga el nombre "WScript". (ojo, el nombre a buscar no acepta el uso de *wildcards* como en la CMD)

Si quieres algo más sencillito, menos tedioso, pues... sinceramente solo con buscar en Google puedes encontrar miles de resultados sobre como buscar valores de registro en .NET.

Saludos!
#819
Nunca he utilizado esa librería, ni la pienso utilizar para comprobar nada, pero solamente con apreciar la nomenclatura de los miembros que has compartido en esos dos snippets te puedo decir que el primero en teoría es asincronico, y el segundo es sincrónico, esto es la respuesta a por qué en el segundo código (el sincrónico) no puedes capturar el porcentaje de la descarga puesto que el método client.DownloadFile() lo más probable es que sea una llamada bloqueante; esto también podría explicar lo que te sucede en el primer código (el asincrónico), puesto que al parecer cuando llamas al método client.Logout() te estás desconectando antes de finalizar la descarga ya que el método client.DownloadFileAsync() en teoría es asincrónico...

Pero la verdad es que sin que des ninguna información sobre dicho error entonces nadie va a saber que decirte con respecto el problema del código asincrónico, no somos adivinos...

De todas formas mi sugerencia es que te documentes sobre la utilización de los keywords async y await al aplicar programación asincrónica, prueba a ver si te funciona así:

Código (csharp,1,10) [Seleccionar]
static async void descargaMegaFile() {          
   var client = new MegaApiClient();
   client.LoginAnonymous();

   Uri fileLink = new Uri("https://mega.nz/#!4YlxhLpD!i0RpF63RTLkjvHvHoeqf3xm8yXQv0zDzp954XtouMUE");
   INodeInfo node = client.GetNodeFromLink(fileLink);

   Console.WriteLine($"Downloading {node.Name}");
   Progress<double> ze = new Progress<double>(p => Console.WriteLine($"Progress updated: {p:P0}"));
   var result = await client.DownloadFileAsync(fileLink, node.Name, ze);

   client.Logout();
   Console.ReadKey();
}


Saludos.
#820
¿puedes subir/compartir la dll para tratar de ayudarte con el P/invoking?.

Acabo de leer la documentación de la macro TEXT (https://docs.microsoft.com/en-us/windows/desktop/api/winnt/nf-winnt-text) y quizás esta pudiera ser la definición adecuada:

Código (csharp) [Seleccionar]
[return: MarshalAs(UnmanagedType.LPTStr)]
[DllImport("pepe.dll", CharSet=CharSet.Auto, EntryPoint="_Mensaje@0")]
public extern static string Mensaje();


De todas formas, y sin experiencia por mi parte en C++, me atrevería a decir que me da la sensación de que el tipo de valor de retorno de tu función y el diseño (la firma de la función) es de alguna forma anómalo, tomo como referencia la API de Windows, que yo sepa no hay ninguna función que devuelve un valor LPTSTR ni de ninguna otra clase de texto, sino que por lo general las funciones que manipulan y devuelven cadenas de texto veo que en su lugar devuelven un valor de evaluación de la misma (me refiero, un BOOL, HRESULT o equivalente para determinar si la llamada a la función fue satisfactoriamente) y para devolver una cadena de texto lo que se hace es definir en la firma de la función un parámetro para pasarle un valor por referencia que, cuando la función retorna, dicho valor contiene el string resultante.

Por ende, mi sugerencia, aunque como ya digo sin tener experiencia en C++ (así que no si estaré muy en lo correcto), es que trates de seguir las reglas de diseño de los maestros (Microsoft), para empezar yo diría que deberías cambiar el valor de retorno de tu export a un simple BOOL y devolver true o false según si todo sale bien, y para que tu función "devuelva" un string pues simplemente añade un parámetro a la función que tome un valor LPTSTR por referencia y a esa variable le estableces el string antes de retornar. A esta hipótesis le añado que también he leido por la documentación de MSDN que crear un export con un tipo de valor de retorno LPTSTR es ilegal, no soportado o algo parecido... vamos, que según parece eso debe dar más problemas que otra cosa en este tipo de escenarios, aunque en realidad no lo se por que no manejo C++, solo digo lo que me parece, desde mi ignorancia, pero según lo que leí y creí entender...

Saludos.