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 - Krähne

#11
Cita de: TwisteD420 en 28 Mayo 2011, 09:05 AM
Krähne:
Fíjate que no logre ejecutar el codigo que me pasaste.
Me sale un error de unicode, tengo Visual Studio 2005, no se si eso será el motivo.

En efecto ese es el error, si lo modificas incluyendo aquellos caracteres Unicode con "\" y su valor hexadecimal luego de él compilaría sin problemas, creo que es así como se declaran en VS 2005 los caracteres Unicode. Yo pues uso el VS 2010 y no tengo muchos problemas.

Pero bueno, no pierdas tiempo, mi modificación de código se desvía mucho de lo que has hecho. Así ya sé para la próxima no perder tiempo también en algo que ni si quiera se tomarán la molestia de modificar para sus necesidades.

Gruß.
#12
Cita de: yesidtaz en 28 Mayo 2011, 20:59 PM
Gracias voy a probar... y te cuento si me sirvio

No entiendo porqué hiciste la misma pregunta 2 veces si ya te la habían respondido, si es por lo que te dije que iba en .NET, no es tu culpa haber cometido el error 1 vez, es culpa de los moderadores no haberlo movido.

De todos modos, la manera más "ética" por decir así es la respuesta que te dió madpitbull_99, ya que... implementa las clases que .NET nos da, pero si bien la mía no es tan "no ética" :xD, y no requiere de .NET Framework 4.

Código (csharp) [Seleccionar]
using System.Runtime.InteropServices;

[DllImport("kernel32.dll")]
static extern bool SetComputerName(string lpComputerName);

public static void Main()
{
    bool Editado = SetComputerName("NuevoNombreDeComputador");

    if (Editado)
        Console.WriteLine("Se ha cambiado el nombre del computador, sin embargo los cambios tendran efecto despues del siguiente reinicio.");
    else
        Console.WriteLine("No se puede cambiar el nombre de computador, necesita permisos de administrador.");
}


Gruß.
#13
Cita de: [D4N93R] en 28 Mayo 2011, 20:57 PM
"resulta que dicha plataforma no es tan "potente" como quisiéramos" Demuéstralo..

Cualquier lenguaje puede usar APIs. Y cuando cambias del lenguaje no cambias de API por lo que no cambia en nada el comportamiento de la llamada.

Todo acá (en entornos administrados) es cuestión de permisologías. Y esa es la verdadera potencia que nos ofrece la plataforma..

Un saludo :)

Venga, estás haciéndome un especie de reto en base a lo que he demostrado. ¿Qué pasa [D4N93R] me vas a trollear ahora?. Ostia que me gusta C# tanto como a ti, pero no hay que negar sus defectos.

Tu mismo te contradices porque, en contraposición con lo que he dicho SÍ tenemos limitaciones de privilegios, y esas limitaciones nos las da misma .NET, ¿¡¡¡QUÉ!!!? ¿¡¡¡CÓMO!!!?... Venga calma, revisa con APIS lo que he hecho y luego con las clases de .NET y verás que tenemos más privilegios o acceso (Debe ser por haber abierto el handle del proceso con permisos específicos, no con los que .NET debe darles para las clases que usa) al momento de usar APIS como he dicho anteriormente, con la clase Process no podemos acceder a los módulos de X Procesos, como svchost.exe (Específicamente uno de todos los svchost.exe), entre otros procesos como winlogon.exe, etc. Con WMI también tenemos limitaciones, y aunque prefiero usar WMI antes que Process, el uso de APIS va a ser un tema indiscutible, siempre tendríamos que trabajar sobre código administrado, seguiré firme en mi opinión sobre el uso de APIS nativas para obtener informaciones de esta talla.

No busco pelear contigo, vamos que hasta te respeto por ser programador de esta plataforma, pero tampoco pienso rebajarme sólo porque no te gustó una crítica que ni si quiera a ti mismo hice; Si gustas comprueba por ti mismo, depura los códigos, prueba paso a paso lo que he dicho.

Eso sí, espero haber entendido lo que me dijiste en tal respuesta, porque... si no ya me extendí en vano :laugh:.

Gruß.
#14
@seba123neo: Hola... he revisado tus ejemplos y me he tomado la libertad de depurarlos para saber cómo funcionaban, y como lo supuse habrían más limitaciones que con el uso de APIS.

Si bien tus códigos aprovechan lo que la plataforma .NET nos ofrece, pero... resulta que dicha plataforma no es tan "potente" como quisiéramos, por tal tenemos limitaciones al momento de realizar operaciones como las que hemos estado tratando en el tema, de lo cual ya debes estar al tanto.

Como te puedes dar cuenta, con tu ejemplo tenemos limitaciones en más de 2 procesos al momento de obtener su ruta, esto con WMI, ahora al momento de hacerlo con Process es aún peor, las limitaciones son mayores ya que no se puede tener acceso a los módulos de algunos procesos, sí... ya veo el Try-Catch pero de nada sirve porque no nos devuelve entonces las rutas de "Todos los procesos" como dice el enunciado de la pregunta original.

Un ejemplo de lo que te digo con WMI es el siguiente:



Como notas la ruta de los procesos nombrados, más uno además del ya nombrado no son obtenidos. Una pena eh, parece que el uso de APIS nos da un poco más de ventajas.

Por supuesto, yo tampoco logré obtener la ruta de esos dos procesos, pero como has traído la información podemos entender que System es un hilo del kernel así que ubicación física no existe, ya el System Idle Process sí se le puede obtener su ruta (creo) ya que revisando algunas aplicaciones por allí en C veo que obtienen esa ruta sin problemas algunos y si mi memoria no falla, es un archivo en C:\WINDOWS\System32.

De todos modos no estamos aquí para probar quién ha hecho el mejor código, tan sólo estamos para dar ayuda y claro, explorar otras soluciones, por ahora sigo firme en mi opinión que el uso de APIS para puntos como los tratados, es mejor en .NET.

Gruß.
#15
Cita de: Psyke1 en 28 Mayo 2011, 01:57 AM
Google, Wikipedia y a probar. :silbar:

DoEvents! :P

Jajajaja #EPIC +10.
#16
[OFFTOPIC]
¿Y harás un cutre aimbot para demostrar tus hazañas en foros donde se creen jaquers por saltar ownear el GameGuard?... :laugh:

Dios, No sé para qué pierden tiempo creyendo que superarán al DragonBotPro o AimbOYd con fallidos intentos para lograr atraer n00bs y lammers a un foro lleno de publicidad en cada esquina.
[/OFFTOPIC]
#17
1) Esto no va en C/C++, va en .NET
2) La plataforma .NET hasta donde tengo entendido no contiene alguna clase que haga ello, sin embaro puedes hacerlo manualmente con el uso de APIS.

Para cambiar el grupo de trabajo o WORKGROUP debes importar la API SetComputerName(), a la cual se le pasa como parámetro un string con el nombre a aplicar.

Un ejemplo sería el siguiente (Ojo, lo estoy haciéndo manualmente, no tengo el VS instalado, pero debería funcionar):

Código (csharp) [Seleccionar]
using System.Runtime.InteropServices;

[DllImport("kernel32.dll")]
static extern bool SetComputerName(string lpComputerName);

public static void Main()
{
   bool Editado = SetComputerName("NuevoNombreDeComputador");

   if (Editado)
       Console.WriteLine("Se ha cambiado el nombre del computador, sin embargo los cambios tendran efecto despues del siguiente reinicio.");
   else
       Console.WriteLine("No se puede cambiar el nombre de computador, necesita permisos de administrador.");
}


Ahora, desconozco el cómo cambiar el dominio, es más me atrevo a decir que no se puede.

Gruß.
#18
Repito por última vez.

Inyectate en el proceso winlogon.exe, no tienes de otra. Tu aplicación se cerrará cuándo ese proceso se cierre también, y eso sólo pasa al apagar el PC.
#19
Cita de: aseoane33 en 25 Mayo 2011, 19:46 PM2- tengo tambien que aplicarle a ese textbox de hola mundo unos botones.... los cuales son tipo de letra ( cursiva - negrita- subrayado) y color de la letra.

WTF?.

Sinceramente no sé ni qué cojones quieres hacer, pero aquí te dejo un ejemplo para cambiarle estilos y colores a la propiedad .Text de un textBox, modifícalo a tus necesidades.

Código (csharp) [Seleccionar]

textBox1.Font = new Font(textBox1.Font.Name, textBox1.Font.Size, FontStyle.Bold | FontStyle.Italic | FontStyle.Underline);
textBox1.ForeColor = Color.Red;


Al momento de cambiar el tipo de fuente, nos pide como parámetros:


  • El nombre de la nueva fuente a aplicar, si no lo queremos cambiar le decimos que use el mismo del textBox1 (Es decir textBox1.Font.Name).
  • El tamaño de la fuente, al igual que con el nombre le dejamos el mismo, si necesitas cambiarlo usa el número que quieras con la terminación F, ejemplo: 9F ya que pide un número flotante.
  • El estilo de fuente, como me hablaste de 3 tipos (Negrita, cursiva y subrayada) puse los 3 de una vez.

Y para cambiar el color, es usando la propiedad ForeColor del control que desees y contenga esa propiedad. Arriba quedó claro el ejemplo.

Bien, esto último es realizado obviamente en tiempo de ejecución, ahora si lo quieres cambiar antes de compilar, tan sólo revisa las propiedades de tu textBox o button, (Haz click sobre el control que quieras personalizar y presiona F4), luego verás el menú completo para que modifiques a tus gustos las propiedades del control, entre las que buscas, están: ForeColor (Que como he dicho anteriormente es para cambiar el color de la fuente), y Font para cambiar todo lo demás.

Aquí un ejemplo:



Espero te sirva, modifícalo a tus necesidades.

Gruß.
#20
Cita de: seba123neo en 27 Mayo 2011, 01:58 AM
es que "el proceso inactivo del sistema" no es un proceso en si, es un simple hilo del kernel que calcula el uso de la cpu, para que quede claro aca te dejo una explicación de internet:

PD:yo no usaria apis en .NET, lo podes hacer con la clase Process o hasta con WMI muy facilmente sin recurrir a las apis para obtener el path.

Interesante, no se me había dado por buscarle en google. Gracias por esa información.

Y... ¿Cómo lo harías sin el uso de APIS obteniéndo los mismos resultados que yo con el uso de las mismas?.

De todos modos, creo que la ayuda quedó solventada ya hace 2 respuestas.