Página 1 de 1

[VB.NET] Eliminar Mutex de un proceso

Publicado: 27 Feb 2014, 19:24
por Gordonfreeman75
Muy buenas.

Estaba pasando el rato con mi Visual Studio como de costumbre, y pensé en cómo se podría controlar el Mutex de una aplicación.

Es decir, hacer que una aplicación que se puede ejecutar infinitas veces a la vez (por ejemplo el notepad.exe) sea restringido y solo pueda ejecutarse una instancia simultáneamente. O bien hacer que en una aplicación que de por si viene restringida con un mutex (tipo Skype, que solo deja abrir una instancia), se pueda eliminar dicho mutex para poder abrir más instancias de ella.

Por ahora solo he conseguido poder ocupar el mutex de una aplicación para que directamente no se pueda abrir ninguna vez xD

Así:

Código: Seleccionar todo

Dim mtx As Mutex
mtx = New Mutex(False, "MutexDelProgramaEnCuestion")
Pero ahora no se cómo podría hacer para lo contrario, es decir, poder manipular ese mutex para poder abrir tantas instancias como yo quiera.

A alguien se le ha ocurrido cómo hacer esto alguna vez? xD

Gracias y un saludo a tod@s!

Re: [VB.NET] Eliminar Mutex de un proceso

Publicado: 28 Feb 2014, 00:11
por frostfrozenn
mmmm parece un poco complicado lo que pedis jajaj. Tene en cuenta que el mutex esta hardcodeado en el programa lo mas sencillo seria editar con ensamblador la parte donde crea el mutex (en vb.net no encuentro la llamada al kernel32 :S)

Re: [VB.NET] Eliminar Mutex de un proceso

Publicado: 28 Feb 2014, 12:46
por Gordonfreeman75
Hmmm, pero si yo conozco el mutex del programa, no podría modificarlo en tiempo real, en memoria mientras se ejecuta para no tener que editar el .exe?

Re: [VB.NET] Eliminar Mutex de un proceso

Publicado: 02 Mar 2014, 00:48
por frostfrozenn
Busque e intente encontrar pero en ningun lado se especifica como modificar un mutex :S. De hecho es lo primero que se me vino a la mente, el tema es que hay que encontrar donde se almacena

Re: [VB.NET] Eliminar Mutex de un proceso

Publicado: 02 Mar 2014, 01:40
por Blau
Yo para poder abrir dos instancias de un juego que tiene mutex abro primero uno, abro el procexplorer, selecciono el proceso y cierro el siguiente 'handle'
Imagen