elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  evitar q una aplicacion se ejecute mas de 1 vez
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: evitar q una aplicacion se ejecute mas de 1 vez  (Leído 2,480 veces)
Mr.Chispa

Desconectado Desconectado

Mensajes: 269



Ver Perfil
evitar q una aplicacion se ejecute mas de 1 vez
« en: 31 Octubre 2006, 04:40 am »

hola: eso mismo ¿como evito q mi aplicacion se ejecute mas de 1 vez? lo eh visto en el foro pero no logro encontrarlo. saludos y gracias por su ayuda


En línea

_Sergi_


Desconectado Desconectado

Mensajes: 842



Ver Perfil
Re: evitar q una aplicacion se ejecute mas de 1 vez
« Respuesta #1 en: 31 Octubre 2006, 04:46 am »

En el Sub Main (si tu programa no tiene formularios) o bien en el Form Load de tu primer formulario, escribe

Código:
If App.PrevInstace = True Then
End
End If

Si hay una instancia del programa abierta, la nueva se cerrará.

Un saludo



En línea

Proyecto de Ingeniero
Mr.Chispa

Desconectado Desconectado

Mensajes: 269



Ver Perfil
Re: evitar q una aplicacion se ejecute mas de 1 vez
« Respuesta #2 en: 31 Octubre 2006, 04:47 am »

gracias, sabia q era facil  ;D
En línea

Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.164


Cheats y Trainers para todos!


Ver Perfil WWW
Re: evitar q una aplicacion se ejecute mas de 1 vez
« Respuesta #3 en: 31 Octubre 2006, 08:02 am »

Esa función te servirá para evitar que se ejecute 2 veces un mismo archivo. Pero si alguien coje tu ejecutable y lo copia como: Proyecto2.exe entonces podrá ejecutar los 2 a la vez.

Para evitar eso tienes que crear un Mutex, no es muy complicado, si quieres te pongo el código.
En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
SheKeL_C$


Desconectado Desconectado

Mensajes: 549


_-=[Sh3K3L_C$]=-_


Ver Perfil
Re: evitar q una aplicacion se ejecute mas de 1 vez
« Respuesta #4 en: 31 Octubre 2006, 08:18 am »

Ponlo please...

Yo lo q ago es enumerar las ventanas de todo el pc y si alguna coincide cn el caption del formulario pos cerrar. Yase q si fuese una aplcacion normal ( un explorador, juego, etc...) no serviria xq el caption a veces lo tendria q cambiar, pero como lo utilizo para los server  ;)




Salu2
En línea

byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re: evitar q una aplicacion se ejecute mas de 1 vez
« Respuesta #5 en: 31 Octubre 2006, 14:07 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 
   );   
 

Parameters

lpMutexAttributes

Pointer to a SECURITY_ATTRIBUTES structure that determines whether the returned handle can be inherited by child processes. If lpMutexAttributes is NULL, the handle cannot be inherited.

Windows NT: The lpSecurityDescriptor member of the structure specifies a security descriptor for the new mutex. If lpMutexAttributes is NULL, the mutex gets a default security descriptor.
Windows 95: The lpSecurityDescriptor member of the structure is ignored.

bInitialOwner

Specifies the initial owner of the mutex object. If TRUE, the calling thread requests immediate ownership of the mutex object. Otherwise, the mutex is not owned.

lpName

Points to a null-terminated string specifying the name of the mutex object. The name is limited to MAX_PATH characters and can contain any character except the backslash path-separator character (\). Name comparison is case sensitive.

If lpName matches the name of an existing named mutex object, this function requests MUTEX_ALL_ACCESS access to the existing object. In this case, the bInitialOwner parameter is ignored because it has already been set by the creating process. If the lpMutexAttributes parameter is not NULL, it determines whether the handle can be inherited, but its security-descriptor member is ignored.
If lpName is NULL, the mutex object is created without a name.

If lpName matches the name of an existing event, semaphore, or file-mapping object, the function fails and the GetLastError function returns ERROR_INVALID_HANDLE. This occurs because event, mutex, semaphore, and file-mapping objects share the same name space.

 

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.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.

Remarks

The handle returned by CreateMutex has MUTEX_ALL_ACCESS access to the new mutex object and can be used in any function that requires a handle to a mutex object.
Any thread of the calling process can specify the mutex-object handle in a call to one of the wait functions. The single-object wait functions return when the state of the specified object is signaled. The multiple-object wait functions can be instructed to return either when any one or when all of the specified objects are signaled. When a wait function returns, the waiting thread is released to continue its execution.

The state of a mutex object is signaled when it is not owned by any thread. The creating thread can use the bInitialOwner flag to request immediate ownership of the mutex. Otherwise, a thread must use one of the wait functions to request ownership. When the mutex's state is signaled, one waiting thread is granted ownership, the mutex's state changes to nonsignaled, and the wait function returns. Only one thread can own a mutex at any given time. The owning thread uses the ReleaseMutex function to release its ownership.

The thread that owns a mutex can specify the same mutex in repeated wait function calls without blocking its execution. Typically, you would not wait repeatedly for the same mutex, but this mechanism prevents a thread from deadlocking itself while waiting for a mutex that it already owns. However, to release its ownership, the thread must call ReleaseMutex once for each time that the mutex satisfied a wait.
Two or more processes can call CreateMutex to create the same named mutex. The first process actually creates the mutex, and subsequent processes open a handle to the existing mutex. This enables multiple processes to get handles of the same mutex, while relieving the user of the responsibility of ensuring that the creating process is started first. When using this technique, you should set the bInitialOwner flag to FALSE; otherwise, it can be difficult to be certain which process has initial ownership.

Multiple processes can have handles of the same mutex object, enabling use of the object for interprocess synchronization. The following object-sharing mechanisms are available:

·   A child process created by the CreateProcess function can inherit a handle to a mutex object if the lpMutexAttributes parameter of CreateMutex enabled inheritance.
·   A process can specify the mutex-object handle in a call to the DuplicateHandle function to create a duplicate handle that can be used by another process.
·   A process can specify the name of a mutex object in a call to the OpenMutex or CreateMutex function.

 

Use the CloseHandle function to close the handle. The system closes the handle automatically when the process terminates. The mutex object is destroyed when its last handle has been closed.
En línea

Mr.Chispa

Desconectado Desconectado

Mensajes: 269



Ver Perfil
Re: evitar q una aplicacion se ejecute mas de 1 vez
« Respuesta #6 en: 2 Noviembre 2006, 04:15 am »

de todos modos no tengo mucho problema q cambien el nombre del ejecutable por q es un keylogger. gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines