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

#1261
.NET (C#, VB.NET, ASP) / Re: set APPDATA en C#
6 Febrero 2018, 16:52 PM
Hola.

1. ¿Qué se supone que tiene que ver tu duda con el lenguaje Visual Basic?. Las preguntas sobre C# van en el subforo de Programación .NET Framework

2. El concepto de declarar una función consiste en el propósito de devolver un valor específico al finalizar el bloque de instrucciones de dicha función, por ende, una función no parece ser aplicable ni necesaria en tu caso, ya que tan solo parece que necesitas usar un método-controlador del evento Click de un botón, e iniciar un tipo de archivo executable.

3. En el código Batch-script que has mostrado, estás declarando una variable que tiene el mismo nombre que una de las variables de entorno: %APPDATA%, y por ende, estás sustituyendo el valor de la variable de entorno %APPDATA% durante el tiempo de vida de la instancia de la CMD donde corra tu script. Hacer ese tipo de cosas va contra las guías de diseño de la programación Batch.

4. De por si, esas dos lineas de código Batch que has mostrado no tienen relación ni sentido entre si, puesto que declaras la variable APPDATA y no la utilizas para nada, así que no sabemos cual es tu propósito al hacer eso.

De todas formas, te muestro dos ejemplos:

Equivalente en C# a declarar una variable y asignarle como valor el directorio de trabajo actual:
Código (csharp) [Seleccionar]
using System.IO;
(...)

// set APPDATA=%CD%\data
string dirpath = Path.Combine(Directory.GetCurrentDirectory(), "data");


Equivalente en C# a iniciar un tipo de archivo executable a través de Shell-Execute:
Código (csharp) [Seleccionar]
using System.Diagnostics;
using System.IO;
(...)

// bin\game.jar
using (Process p = new Process()) {
   p.StartInfo.FileName = @".\bin\game.jar";
   p.StartInfo.UseShellExecute = true;
   p.StartInfo.WorkingDirectory = Path.GetDirectoryName(p.StartInfo.FileName);

   p.Start();
}


Como puedes ver en el ejemplo de arriba, para iniciar un tipo de archivo executable puedes usar la clase System.Diagostics.Process. Si en lugar de la consola de java tu intención es ejecutar directamente ese archivo .jar, entonces no te olvides de activar la propiedad Process.StartInfo.UseShellExecute.

Saludos!
#1262
La encontré!!, resulta que era del 2014.

Según Wikipedia, la película se llama 'After The Dark', anteriormente conocida y publicada como 'The Philosophers'.

Trailer de 'The Philosophers'
[youtube=640,360]https://www.youtube.com/watch?v=2_ZDcG4xSeg[/youtube]

Trailer de 'After The Dark'
[youtube=640,360]https://www.youtube.com/watch?v=IJ36cRPg9es[/youtube]
#1263
Hola.

Busco una película, pero no recuerdo el nombre... ni tampoco muchos detalles al respecto.

La película tendrá 6 o 7 años, puede que sea del 2010 o 2012. Era una película algo post-apocalíptica y futurista. El argumento no lo recuerdo bien, pero al principio de la película salia como una clase de estudiantes y un profesor, el caso es que, creo que decidieron hacer un experimento, o por investigación, no se, y entonces el profesor y los alumnos se van a una especie de búnker muy grande y algo futurista (en La tierra), y todos se quedaban atrapados dentro, y a partir de ahí toda la película trataba de sobrevivir dentro del búnker, no podian salir por que el aire de la atmósfera los mataría o algo así. Creo que el búnker estaba rodeado de un terreno arenoso y desierto, no habia nada más que el búnker, y recuerdo que la puerta del búnker era como de cristal o algún material transparente, se veia a través, y había un botón al lado para abrir la puerta. Creo que la película no se estrenó en cines, directamente en DVD. Los actores, no recuerdo que hubiese ningún famoso. No recuerdo más.

¿Alguien recuerda el nombre de esa película?.

Películas que NO son la que estoy buscando:
- The Divide
- 10 Cloverfield Lane

Saludos!
#1264
Cita de: Had3s en  3 Febrero 2018, 20:33 PMEntre los fanáticos de internet hay un dicho conocido como la "Regla 34" que reza: "Si algo existe, habrá porno sobre ello. Sin excepción".

Me parece una filosofía internauta muy acertada, yo recuerdo que más o menos a finales del año pasado esta tecnología se hizo muy popular por un video porno amateur que se volvió viral, donde le colocaron la cara de Scarlett Johansson a la protagonista del video, y recuerdo que el autor hizo más videos con la cara de otras famosas como por ejemplo Taylor Swift y no recuerdo quien más.

Y antes de que esta tencnología llegase a las manos de algún pajillero perturbado, ya se había vuelto muy popular por el video ese viral con la cara de Barack Obama y blah blah blah, pero yo considero que es más interesante "ver a Scarlett Johansson" recibiendo por delante y por detrás... ;)



Ahora lo que pasará, dentro de unos pocos años, la gente empezará a volverse más sociable con su vecina la del quinto piso para grabarle "un video inocente" de su cara, ya sabeis, para calibrar el zoom o cualquier excusa barata, me lo veo venir... .  .

Saludos!
#1265
Cita de: NEBIRE en  4 Febrero 2018, 14:12 PM¿Cómo has resuelto los enlaces dinámicos?.

Pues gracias por mencionarlo, no se me ocurrió la idea o la circunstancia de añadir soporte para enlaces simbólicos. No pretendo que lo siguiente suena a excusa, creo que es una gran responsabilidad compartir un programa para otras personas, pues hay que tener en cuenta los escenarios y necesidades de los demás, pero principálmente desarrollé la aplicación para cubrir mis necesidades personales, y luego la compartí por si le podía servir a alguien más y no se me ocurrió lo de los enlaces simbólicos sencillamente por que no lo necesitaba y no se me pasó ni por la cabeza, simplemente utilizo las funciones DirectoryInfo.EnumerateDirectories() y DirectoryInfo.EnumerateFiles() para devolver los directorios y archivos de cada directorio, incluyendo los enlaces simbólicos (y uniones/junctions) a directorios o archivos, que se copian como archivos dummy de cero bytes como si se tratase de un archivo normal y no un enlace simbólico.

Pero ahora que lo has mencionado, implementaré ese tipo de funcionalidad para identificar enlaces simbólicos y dejar que el usuario decida que hacer (ignorarlos, copiarlos como archivos dummy, o copiarlos como accesos directos o crear el enlace simbólico equivalente al copiar), le añadiré esa funcionalidad y para la siguiente release estará listo.




Con respecto a como resolverlo, primero hay que comprobar si el elemento tiene asignado un Reparse Point verificando el atributo FileAttributes.ReparsePoint, y en caso positivo leer la estructura de datos del reparse point para obtener el tag que identifica el tipo de datos del reparse point, ese identificador es con el que poder determinar si se trata de un enlace simbólico (o un directorio de montaje, u otra cosa). Aquí tienes información al respecto si le quieres echar un vistazo:


Si tienen alguna otra sugerencia para este programa, ¡bienvenida sea!.

Saludos!
#1266
Cita de: gregory90 en  4 Febrero 2018, 11:28 AMEl fichero "empleados.txt" lo dejara escrito en el princpio del post.

Discúlpame, se me fue la pinza xD... eso me pasa por abrir varios threads del foro al mismo tiempo y leer deprisa las dudas en los posts. Te respondí todo lo que te dije sin fijarme en el formato de ese CSV, de lo contrario diréctamente te habría mencionado lo de las comillas dobles al ver como era el formato de tu CSV y como estabas declarando las variables.

Cita de: gregory90 en  4 Febrero 2018, 11:28 AMDe ese modo, englobando todo entre comillas, entiendo que que coge todo? o como?

Exactamente, "lo coge todo" como bien dices, bueno, las variables que declaraste también lo cogen todo... cogen todo lo que hayas escrito despues del símbolo "=", incluyendo las comillas dobles que le añadiste al principio y final del string. Simplemente la próxima vez asegúrate de hacerlo como te mostré para evitar que eso suceda. Esa es la forma recomendada para declarar variables, de lo contrario puedes cometer fallos humanos como el que ya has tenido, o como el de este otro ejemplo:

Código (dos) [Seleccionar]
Set var=qwerty    & (Echo.)

Echo "%var%"

( el valor de "%var%" será "qwerty    ")

Saludos!
#1268
Windows / Re: instalar parches windows por intel
4 Febrero 2018, 10:59 AM
Cita de: huerto123 en  4 Febrero 2018, 09:07 AMHay una solución efectiva para lo de procesadores intel(spectre)?

Los parches del kernel / actualizaciones de seguridad de los sistemas operativos se supone que es lo más efectivo por el momento, aunque según he leido probablemente no pueda haber una solución de hardware permanente...

Cita de: https://www.pcworld.com/article/3245606/security/intel-x86-cpu-kernel-bug-faq-how-it-affects-pc-mac.htmlThere may be no permanent hardware solution to Spectre, which "tricks other applications into accessing arbitrary locations in their memory." Processor firmware updates can mitigate the issue to some degree. Software also needs to be hardened to guard against it.

Con respecto a las actualizaciones, aquí tienes todo lo necesario (en teoría):




Cita de: huerto123 en  4 Febrero 2018, 09:07 AMSolo afecta a windows o a más ordenadores como mac?

Si no me equivoco, la vulnerabilidad afecta practicamente a todos los procesadores de Intel que hayan sido lanzados desde el año 1995 hasta ahora (excepto los procesadores de la familia Itanium y Atom que hayan sido lanzados antes del año 2013), y se especula que tambien puede afectar a procesadores AMD.

El bug afecta al procesador y al rendimiento de este indiferentemente del tipo de dispositivo en el que se encuentre instalado y sistema operativo, es decir, que afecta a todas las computadoras de sobremesa, portátiles y smartphones que usen un procesador Intel. El impacto negativo en el rendimiento puede ser más notable o menos notable dependiendo de los tiempos de trabajo del procesador, el rendimiento del hardware y el del sistema operativo en general.

Fuentes:

Saludos.
#1269
Cita de: rigorvzla en  4 Febrero 2018, 02:32 AM
la idea seria que al yo colocar el promt en cualquier lugar donde sea posible escribir, pueda dictar y que copie , sea ya en bloc de notas, en la barra de direccion del explorador web o un cuadro de consola.

Bueno, eso no es algo de hacer tan simple como llamar a un método y listo, debes identificar la ventana activa que tiene el foco de entrada, o la ventana hija de tipo 'Edit Control' en la que desees escribir el texto. Para detectar la ventana activa y asignar un texto a dicha ventana puedes recurrir a las funciones de la API de Windows para la mensajería de ventanas (GetForegroundWindow, SendMessage + WM_GETTEXT / WM_SETTEXT), si necesitases identificar una ventana hija dentro de la ventana principal/padre activa, entonces necesitarías enumerar las ventanas (funciones EnumChildWindows / EnumThreadWindows), o puedes recurrir diréctamente a la tecnología de Microsoft UI Automation para analizar el árbol de ventanas.

Win32 o UI Automation, ambas metodologías tienen sus ventajas e inconvenientes respectivamente, UI Automation es más sofisticado y simplificado, pero tambien más lento, y solo es compatible con ciertas ventanas que soporten el modelo (yo te digo, que en general con UI Automation no deberías encontrar ningún problema al intentar analizar cualquier tipo de ventana), pero lo bueno es que sería una solución basada en código administrado y por ello la solución se vuelve más estable y sencilla de implementar; mientras que la API de Win32 es compatible con todo tipo de ventanas (Win32, WPF, Windows Forms...), pero es código no administrado y eso resultaría en un código resultante más tedioso, feo e inestable en comparación.

Puedes encontrar muchos ejemplos en Internet con respecto a como detectar la ventana activa en C#, ejemplos de como enumerar ventanas hijas con la API de Windows, o como usar UI Automation en general.

Un saludo
#1270
Cita de: gregory90 en  4 Febrero 2018, 01:42 AM
Sigue fallando, quiero decir con fallando de que no me hace nada realmente, se ejecuta sin errores. Pero no me añade los usuarios a ningún grupo.

Por más que le doy vueltas no veo que puede estar pasando...

Entonces probablemente sea un error de diseño en el algoritmo con respecto al análisis/parsing de datos. Sin saber lo que hay escrito en el archivo 'empleados.txt' y sin saber el string que devuelve la variable !turno! y !login!, se hace dificil saber que ocurre. Usa el comando ECHO para visualizar el valor de las variables antes de intentar añadir los usuarios, y eso te ayudará a determinar lo que puedes estar haciendo o comparando mal, o al menos a obtener alguna pista sobre ello.

Por ejemplo, aquí le estás añadiendo comillas dobles al principio y al final de cada valor:
Citar
Código (dos) [Seleccionar]
set manana="7:00 a 15:00"
set tarde="15:00 a 23:00"
set matarde="7:00 a 23:00"

...y probablemente eso no es lo que querías hacer. La sintaxis correcta sería la siguiente:
Código (dos) [Seleccionar]
set "manana=7:00 a 15:00"
set "tarde=15:00 a 23:00"
set "matarde=7:00 a 23:00"


Saludos!