Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: ignorantev1.1 en 5 Septiembre 2006, 01:19 am



Título: Crear Exe k permita abrir 2 veces un programa
Publicado por: ignorantev1.1 en 5 Septiembre 2006, 01:19 am
Necesito conocer en que archivo se encuntra la instruccion de3 que un exe no se abra mas de una vez un exe...
o expliquenme como crearlo... se los agradezco gracias!!!


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: yeikos en 5 Septiembre 2006, 01:28 am
Código:
' Si el programa se encuentra en ejecución se cierra
 If App.PrevInstance = True Then End


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: ignorantev1.1 en 5 Septiembre 2006, 02:36 am
no me entendiste... no me refiero al programna que haga yo si no a otro.. por ejemplo el msn no se puede iniciar secion 2 veces o mas, me refiero a crear una aplicacion o como se llame para poderlos ejecutar 2 o mas veces(no me refiero a msn basicamente)...gracias!!!


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: DarkSigma en 5 Septiembre 2006, 02:44 am
Bueno hace ya tiempo que no reviso ese tema pero la idea basica es la misma que se usaba antes con los lanzadores de MSN Messenger, es decir lanzar el ejcutable desde VB con un numero de proceso diferente por cada copia...

Con gusto te mostraria un ejemplo pero no se ni donde quedaron todos mis codigos VB pero se realiza de la manera que te menciono


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: elmaro en 5 Septiembre 2006, 08:23 am
si puedes postiar el code para lanzar un proceso con distinto pid cada vez, te lo agradeceria :P

saludos


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: byebye en 5 Septiembre 2006, 13:54 pm
Citar
Bueno hace ya tiempo que no reviso ese tema pero la idea basica es la misma que se usaba antes con los lanzadores de MSN Messenger, es decir lanzar el ejcutable desde VB con un numero de proceso diferente por cada copia...

el proceso se cree de la forma que sea siempre tiene un id diferente. el msn lo que crea es un mutex cada vez que se ejecuta y si existe pues se cierra, modificando la comparacion puedes abrirlo las veces que quieras.


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: Zeroql en 5 Septiembre 2006, 21:04 pm
pues lo mejor es que hagas una plicacion que te cre una copia en temporales de la aplicacion que kieres abrir con diferente nombre. tambie que le dijas que no se ejecuta por sistema. eso lo pudes hacer por regedit en HKLM\software\microsoft\windows\curient user, eso lo habia hecho hace tiempo pero no me acuerdo como...


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: ignorantev1.1 en 5 Septiembre 2006, 23:25 pm
Si pudieran codear algo mas o mens pa darme una idea se los agradeceria preferiblemente en VB...Gracias!!

No soy bruto lo que pasa es que soy lento para aprender...


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: elmaro en 6 Septiembre 2006, 00:23 am
con respecto al mutex
no tengo muy en claro su significado pero si para que sirve,. lguna manera de hacerlo en vb??
yo abia echo algo asi,. se ejecutba la aplicacion, guardaba un dato boolean en el registro como true si el programa se estaba ejecutando y lo modificaba a false cuadno se cerrara,. si al abrir el exe la entrada era true, se cerraba,. funcionaba muy bien,. pero el problema era el siguiente: si la aplicacion se  cerraba x algun error de windows,. o xq me mataban el proceso ,. el valor kedabva en true., no lo pasaba a false, logicamente
de ahi en adelante cda ves que se keria abrir era como si ya se estubiesee ejecutando

bueno nose,. fijense
saludos


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: ignorantev1.1 en 7 Septiembre 2006, 15:16 pm
 ;D yo  creo k son mas faciles los ejemplos...Gracias!!!


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: byebye en 7 Septiembre 2006, 20:40 pm
Citar
The CreateMutex function creates a named or unnamed mutex object.

HANDLE CreateMutex(

    LPSECURITY_ATTRIBUTES lpMutexAttributes,   // pointer to security attributes
    BOOL bInitialOwner,   // flag for initial ownership
    LPCTSTR lpName    // pointer to mutex-object name 
   );

Citar
Return Values

If the function succeeds, the return value is a handle to the mutex object. If the named mutex object existed before the function call, the GetLastError function returns ERROR_ALREADY_EXISTS. Otherwise, GetLastError returns zero.

Citar
The system closes the handle automatically when the process terminates


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: ignorantev1.1 en 8 Septiembre 2006, 01:10 am
Gracias por tu colaboracion... si alguien me podria traducir lo anterior se lo agradeceria...pero de cualquier forma GRACIAS!!!


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: byebye en 8 Septiembre 2006, 14:29 pm
en cristiano quiere decir algo asi:

si no hay ningun problema la funcion devuelve el manejador del objeto mutex. si ya existe devuelve ERROR_ALREADY_EXISTS.

el sistema cierra automaticamente el handle al terminar el proceso.

se inicia el programa:
 if createmutex==ERROR_ALREADY_EXISTS
 cerrar aplicacion
 else
 seguir la ejecucion

se entiende la forma de usarlo mas o menos.


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: ignorantev1.1 en 9 Septiembre 2006, 02:40 am
Eso no es VB verdad?...no conozco el lenguaje o komo usar las propiedades k me diste(si esk esta en otro lenguaje)...ahora suponiendo que la copia del programa se llame:
hola.exe
y el programa se llame:
hey.exe...

explicamelo asi haber si asi si le entiendo...GRACIAS!!!

NO SOY TAN BRUTO LO QUE PASA ES QUE SOY LENTO QUE ES DIFERENTE...


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: byebye en 9 Septiembre 2006, 07:05 am
no es ningun lenguaje en concreto, es para que te de una idea y cfreo que se entiende perfectamente.


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: ignorantev1.1 en 10 Septiembre 2006, 19:51 pm
Esperame creo k te estoy entendiendo´pero tu no mi...
tu pones que si hay error cierre la aplicacion:
el error es logico que suceda es precisamente para eso la aplicacion que quiero crear. para evitar errores...
Eso es lo que dices?...
por lo general los programas o parches que tiene esta funcion son similares a el original pero son un poco mas grandes...
GRACIAS!!!


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: [VolkS] en 11 Septiembre 2006, 08:21 am
Private Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (ByVal lpMutexAttributes As Long, ByVal bInitialOwner As Long, ByVal lpName As String) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
 
Private Const ERROR_ALREADY_EXISTS = 183&
 
Public Const AppVer = "MyApp v1.1"
Dim mutexvalue As Long
   
mutexvalue = CreateMutex(ByVal 0&, 1, AppVer)
 
If (Err.LastDllError = ERROR_ALREADY_EXISTS) Then
 CloseHandle mutexvalue
end
End If

Este code no es mio.
en la constante AppVer Pone el caption de la ventana que uses.
le agrege el "end"
(no lo testie, por lo que vi, parece funcionar)


Título: Re: Crear Exe k permita abrir 2 veces un programa
Publicado por: ignorantev1.1 en 12 Septiembre 2006, 23:26 pm
Por alguna razon no sirvio VOLks... el primer error que me marco que las constantes no se pueden definir "publics" y depues la puse "private".. depues que no me marco error a la hora de el calis lo compile y lo ejecutaba y simplemente no sucedia nada. podrias decir por que?
GRACIAS!!!