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

#5521
Debes utilizar el botón de insertar código para insertar bloques de código, lee y respeta las normas del foro y de este subforo.

Tema cerrado.

Saludos!
#5522
Dudas Generales / Re: Manipular páginas web
12 Marzo 2015, 12:11 PM
Hay otras extensiones cómo por ejemplo "customizemyweb" "Customize Your Web" para FF, con una interface más intuitiva orientada a usuarios inexpertos que te hacen todo el trabajo sin necesidad de desarrollar ningún tipo de código, puedes rellenar formularios, cambiar el estado de ciertos controles (ej: checkar un checkbox), redimensionar forms, eliminar/añadir texto/controles, etc, con 1 solo click.

Saludos
#5523
Cita de: ikkaku en 11 Marzo 2015, 20:10 PMLo que quería decir es que suponiendo que modificando el registro, explorer.exe no estaría ejecutado  y de alguna manera debería hacerlo mi programa.

Entonces lo que pretendes hacer es deshabilitar la shell y punto, jeje.

Accede a la siguiente clave de registro:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

Crea un nuevo valor de tipo REG_SZ con el nombre Shell (en caso de que no exista), y en los datos del valor especifica la ruta absoluta a tu programa (ej: C:\Application.exe).

ADVERTENCIA:
Lo que quieres hacer es interferir en el comportamiento del SO, y dicha modificación del registro prevendrá la inicialización de la Shell de Windows por tu propia Shell, es decir, no vas a poder acceder de forma natural a características cómo el menú contextual, o atajos del teclado (hotkeys) para iniciar aplicaciones cómo el administrador de tareas para inicializar el explorer manualmente (a menos que desde tu programa ejecutes el administrador de tareas o los programas que quieras).

Por ende, si haces la modificación del registro, primero prepara tu aplicación para que sea capaz de ejecutar el proceso 'explorer.exe', de lo contrario lo verás dificil para revertir el cambio;
puedes revertir la modificación eliminando el valor que creaste en el registro desde la misma cuenta de usuario (en caso de que pudieras acceder al regedit o correr un Script), o desde otra cuenta de usuario por ejemplo cargando el HIVE del registro del usuario que creó dicho valor.

Mi recomendación es que primero crees una nueva cuenta de usuario, te loguees en dicha cuenta, y desde allí haces la modificación en el registro para testear las capacidades de tu aplicación.

Saludos!
#5525
Buenas

Si quieres iniciar una aplicación antes del inicio de la Shell (o la interfáz del Explorer), bajo Windows XP, Vista, 7, u 8 (aunque no lo he probado con todos), simplemente puedes modificar el valor userinit de la siguiente clave de registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon, que es un valor delimitado por comas, para añadir la ruta absoluta a tu aplicación, por ejemplo:

C:\Windows\System32\notepad.exe,C:\Windows\System32\userinit.exe




Sobre el tiempo de inicialización de tu aplicación desarrollada en C# (que dices que tarda bastante),
generalizando y por la naturaleza del JIT (Just-in-time compilation) un ensamblado .Net tarda bastante en inicializarse completamente (en comparación con otros binarios de otros lenguajes),
pero si quieres optimizar el tiempo transcurrido entre que se inicializa la aplicación y se muestra el Form principal, es decir, el boot-time (o Startup), entonces puedes utilizar el servicio NGEN (Native Image Generator), que reduce considerablemente el boot-time de cualquier ensamblado .Net debido a que, a diferencia del JIT, el ensamblado ya ha sido compilado a código de máquina (machine code) antes de iniciar la aplicación (el JIT siempre lo compila a código de máquina durante el Startup de la aplicación), pero por contra, al utilizar NGEN reducirás el rendimiento general de la aplicación, su tiempo de respuesta, aunque no llegarás a apreciar esa disminuición de rendimiento a menos que tu aplicación sea muy "pesada", aunque también podemos decir lo mismo sobre notar el tiempo transcurrido del startup entre NGEN <> JIT xD.

Ambos tienen sus beneficios y sus contras, tu decides que prefieres, el JIT para un startup lento con un rendimiento normal de la aplicación, o NGEN para un startup rápido con un rendimiento lento de la aplicación.




Cita de: ikkaku en 11 Marzo 2015, 17:02 PMOtro tema es que tambien me gustaria que una vez arrancado el programa un usuario con mas privilegios ( jefe, tecnico...) pueda acceder al escritorio minimizando el programa. La programacion de eso lo tengo hecho pero me imagino que dentro de mi programa deberia arrancar primero el explorer.exe .

Y, digo yo, ¿por qué ese empeño en dejar sin patas a una mesa?, quiero decir, el escritorio es una parte importante de Windows, ¿que necesidad encuentras para querer ocultar el entorno del escritorio mientras el end-user utiliza tu app?.

De todas formas, es suficiente con matar e iniciar el proceso cuando lo creas conveniente, puedes recurrir a la utilización de la Class System.Diagnostics.Process para llevar a cabo ambas tareas.

Si tienes alguna duda sobre estos temas relacionado con C#, publícala en el subforo dedicado a la programación .Net y allí te ayudaré(mos).

PD: Cuando formules una pregunta sobre Windows, cómo mínimo especifica que versión utilizas, no somos magos.

Saludos!
#5526
Cita de: SheKeL_C$ en 11 Marzo 2015, 16:15 PM¿Donde aloja Windows estos mensajes?
Cita de: SheKeL_C$ en 11 Marzo 2015, 16:15 PM¿donde están localizados?

El título de tu pregunta es ligeramente distinto a la pregunta que formulas en el post, y se puede interpretar de varias formas, así que intentaré resolver tus dudas aunque no me queda muy claro lo que realmente quieres averiguar:

Por un lado, y hasta donde yo se, los errores no-controlados de un proceso/librería se reportan y se registran en logs con un formato específico (y, siempre que tengas activado el servicio de registro de eventos de Windows, 'EventLog'), y los puedes visualizar/depurar con el visor de eventos de Windows (Windows EventViewer), que está ubicado en el directorio ...\System32\eventvwr.exe

Si eso es lo único que querías saber, entonces no es necesario que sigas leyendo :P.

Por otro lado, y, también hasta donde yo se, los mensajes de dichos errores, es decir, el mensaje que te muestra en un idioma determinado, están localizados (definidos) en alguno de los archivos de los runtimes de esa aplicación en cuestión, puden estar ubicados entre varios archivos, por ejemplo, si estás ejecutando un ensamblado .Net, es decir, un programa que esté desarrollado en C#/VB.Net, y si éste programa lanza una excepción, entonces el mensaje provendrá de los runtimes de .Net Framework, de cual, es decir, ¿de que "archivo.dll"?, eso dependerá del tipo de excepción, cada librería tiene unos Namespaces diferentes, pero en el ensamblado 'mscorlib.dll' es donde mayor cantidad de excepciones hay definidas (otro ensamblado con excepciones definidas sería 'System.dll', y su tabla de mensajes de errores en el archivo System.Resources.dll).

Por ejemplo un error que practicamente todos los programadores de la plataforma .Net hemos sufrido en al menos una ocasión, sería una excepción del tipo 'NullReferenceException', el mensaje en castellano se obtiene de la tabla de recursos contenida en el ensamblado 'mscorlib.resources.dll':



EDITO: Para ser más específicos, cuando se produce una excepción proveniente de los namespaces del ensamblado 'mscorlib.dll', éste hace una llamada a la función "get_Message", y ésta realiza unas evaluaciones para obtener el mensaje a mostrar dependiendo de la cultura/localización actual de la aplicación ("en-US", "es-ES", etc), si la cultura de la aplicación es "es-ES" entonces sacará el mensaje desde la tabla 'mscorlib.es.resources'.

Aunque sospecho que con una aplicación desarrollada en Visual-C++ sería algo diferente y quizás se obtenga el mensaje de error en alguna de las librerías 'msvcr*.dll', aunque para ser honestos de eso ya no estoy nada seguro, quizás me esté equivocando y se utilicen las mismas tablas porque dicho lenguaje trabaja bajo el C.L.I. y la plataforma .Net Framework, de todas formas tampoco se exactamente de donde se obtienen por ejemplo los mensajes de los errores en tiempo de ejecución que se muestran en aplicaciones desarrolladas en otros lenguajes como C/C++ o Java, aunque cómo ya digo, esos mensajes deben estar definidos en alguno de los archivos de sus runtimes.

EDITO 2:
Aunque lo siguiente que voy a decir resulte muy obvio para muchos de nosotros, cabe mencionar que, un error se puede controlar y se puede suplantar el mensaje de error por un mensaje totalmente único ...personalizado, dicho mensaje se hallará solamente en el binario de esa aplicación, no en los archivos de Windows, claro está.

Saludos
#5527
Cita de: El_Andaluz en 11 Marzo 2015, 15:45 PM
Que de tiempo Elektro saludos ;D bueno decir que el precio de las películas en España es un abuso que no vea decir que en donde yo vivo hay mucha diferencia de un cine a otro por ejemplo en Sevilla capital en el barrio de Nervión vale veer una película por persona atento 8 Euros y si te vas a un pueblo de Sevilla y son casi los mismos cines 5,60 mas o menos dependiendo también el día que vaya eso sin contar las putas palomitas y las coca cola que se te puede ir cerca de otros 8 pavos contando que no tenga que invitar a tu pareja jajaj

Bienvenido a España, donde una pizza mediana de Telepizza, que cuesta entre 15-18 € según los ingredientes, equivale al mismo coste (según que casos incluso más) que una película de estreno o o de 1 año de antiguedad.
Dicho de otra forma, la comida en restaurantes "baratos" vale lo mismo que un pequeño capricho materialista (un DVD/BD), ¿hola, balanza?.

No voy a entrar en detalles, pero España es deprimente en todos los aspectos y a mi modo de ver todo empezó a ir mal con la implantación del Euro y la integración de España a la Unión Europea (pero ahora, una década después y con la excusa de la "crisis" y todo lo demás es cuando la mayoría se empieza a dar cuenta y a mirar pa'trás, juas)... los precios suben y suben, cada dia nos cuelan unos centimos de Euro más y los que hemos estado ahí desde el cambio monetario podemos ver que el "redondeo" del Euro ha hecho incrementar hasta el 300-500% (y en algunos casos más, y sigue, y sigue) el precio/valor que tenía cualquier cosa con las pesetas, y claro, con las pesetas esto no pasaría, pero nada, nosotros teniamos que formar parte de los Europitos, que solo nos han causado desgracias económicas y políticas/pseudo-demócratas, plus la pobreza y la hambruna en general que nos queda por sufrir todavía a cada ciudadano de clase "media" que vivimos en este país, por desgracia sé que el tiempo me dará la razón y muchos de vosotros estareis ahí para vivir esa miseria, a menos que milagrosamente aparezca un justiciero que empiece a rodar cabezas y a poner las cosas en su sitio, esta situación solo podrá ir a peor.

Saludos!
#5528
Cita de: luis456 en 11 Marzo 2015, 15:06 PMpues npi por ahora

Pues lo tienes en bandeja, un ejemplo bien específico de MSN.

¿Qué es lo que no entiendes exactamente?, aunque ya me imagio que será... todo o casi todo...

Estás intentano desarrollar una aplicación que requiere el uso de LINQ, o en su defecto Loops (búcles), entonces practica y aprende lo necesario antes de continuar.

Hace tiempo te mostré una descarga oficial de MSDN que contenia 101 ejemplos de la utilización de LINQ en VB.Net... ahí también tienes ejemplos para ordenar una colección.

...Pero si simplemente los copias sin enterarte de lo que haces, luego estarás en las mismas.

PD: No te desgloso la llamada a .OrderBy en el código citado por que te tendría que explicar sobre expresiones Lambda y eso te confundiría aun más, si lo prefieres puedes intentar algo más básico como un For, o simplemente utiliza el método 'Sort' convirtiendo la secuencia a una Lista (Enumerable.ToList).

Ánimo, ¡es algo fácil!

Saludos!
#5529
Ay, Cuanto daño ha hecho Ramoncín...

Saludos!
#5530
Cita de: luis456 en 11 Marzo 2015, 14:42 PMTe refieres a esta cosa :)

Si, fíjate bien:
Cita de: MSDN
Código (vbnet,14) [Seleccionar]
Structure Pet
       Public Name As String
       Public Age As Integer
   End Structure

   Sub OrderByEx1()
       ' Create an array of Pet objects.
       Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8}, _
                            New Pet With {.Name = "Boots", .Age = 4}, _
                            New Pet With {.Name = "Whiskers", .Age = 1}}

       ' Order the Pet objects by their Age property.
       Dim query As IEnumerable(Of Pet) = _
           pets.OrderBy(Function(pet) pet.Age)

       Dim output As New System.Text.StringBuilder
       For Each pt As Pet In query
           output.AppendLine(pt.Name & " - " & pt.Age)
       Next

       ' Display the output.
       MsgBox(output.ToString())
   End Sub

   ' This code produces the following output:
   '
   ' Whiskers - 1
   ' Boots - 4
   ' Barley - 8

Lo suyo es que entiendas esa "cosa" a la que te estás refiriendo, o al menos su utilización.

Saludos