SkyWeb, ya tienes la solucion para la proxima: No compartas ningun codigo aqui. La gente no aprecia tu trabajo, sea grande o pequeño...
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úCita de: Sm0kes en 16 Marzo 2010, 17:49 PMHoy mismo antes de empezar con esto estaba pensando formas mas astutas Se me ha ocurrido, trabajar con Named Pipes, o trabajar con WM_USER... pero todo esto necesita bastante mas codigo.. y a mi me gustan las cosas minimalistas
hey genial Karcrack lo tomare como alternativa vere que otros metodos habra me has motivado xD... Salu2 y thankz
Cita de: Hasseds en 16 Marzo 2010, 16:45 PMSi, si, mientras uses esa condicion al cambiar el nombre se cerrará... pero te digo que no es buena idea, porque si cambias el nombre al EXE original... es decir, cambias el nombre al "Proyecto1" por incluso "PROYECTO1" dejara de ir.... Por eso no es buena idea O si lo pusieses en un AutoExtraible del WinRar tampoco iria, porque a no ser que digas lo contrario el Winrar pone nombres aleatorios
If App.PrevInstance = True Or App.EXEName <> "Proyecto1" Then End
como va a abrir Proyecto2 si no es = a Proyecto1
Cita de: Hasseds en 16 Marzo 2010, 16:33 PM1- No es buena idea 'hardcodear' un nombre (de carpeta o fichero, da igual), ya que eso es facilmente modificable...
Como que no sirve, si renombras (en la misma carpeta o ya está corriendo no hay segunda instancia
PD: y app.path en el caso que se renombre en otra carpeta
Cita de: Hasseds en 16 Marzo 2010, 16:22 PMCreo que no has leido la cita que he hecho a MadAntrax...
If App.PrevInstance = True Or App.EXEName <> "Project1" Then End
Cita de: ssccaann43 en 16 Marzo 2010, 16:24 PMGracias
Jajaja XD...
Karcrack como dice cobein... Sos un capo...! Me gustó este code...! :
http://foro.elhacker.net/programacion_vb/srcmaltmutexbas_alternativa_a_createmutex-t243771.0.html
Option Explicit
'KERNEL32
Private Declare Function CreateSemaphoreW Lib "kernel32.dll" (ByVal lpSemaphoreAttributes As Long, ByVal lInitialCount As Long, ByVal lMaximumCount As Long, ByVal lpName As Long) As Long
Private Const ERROR_ALREADY_EXISTS As Long = 183&
Public Function bWasIOpened(ByVal lpName As String) As Boolean
bWasIOpened = (CreateSemaphoreW(0&, 0&, 1&, StrPtr(lpName)) > 0) And (Err.LastDllError = ERROR_ALREADY_EXISTS)
End Function
Cita de: ||MadAntrax|| en 19 Mayo 2007, 17:33 PM
sirve para controlar que nuestra aplicación no sea ejecutada 2 veces en un mismo equipo. Algunos pensareis que eso ya se puede hacer conIf App.PrevInstance = True Then End
pero eso no es cierto... si nuestra aplicación se copia en System32 como: programa1.exe y programa2.exe... el usuario podrá ejecutar el programa1.exe y el programa2.exe simultáneamente! Eso puede suponer un problema en el caso de estar programando un troyano o un keylogger (donde lo importante es solo tener una instancia de nuestro malware a la vez).
Private Sub Form_Load()
If bWasIOpened("Cualquier_Cosa") = True Then End
End Sub
Cita de: ssccaann43 en 16 Marzo 2010, 13:43 PMQue malo eres
Esto lo habras sacado de acá:http://www.runelocus.com/forums/archive/index.php/t-25306.html
Y creo que si, la gran mayoria de las variables estan iguales...
'OLEAUT32
Private Declare Function OleLoadPicturePath Lib "OLEAUT32" (ByVal szURLorPath As Long, ByVal punkCaller As Long, ByVal dwReserved As Long, ByVal clrReserved As OLE_COLOR, ByRef riid As GUID, ByRef ppvRet As IPicture) As Long
Private Type GUID
cData1 As Currency
cData2 As Currency
End Type
Public Function GetImage(hURLorPath As String, Optional TransparentColor As OLE_COLOR = vbWhite) As StdPicture
Dim uID As GUID
With uID ' // StdPicture GUID {7BF80980-BF32-101A-8BBB-00AA00300CAB}
.cData1 = 116045007755044.6976@
.cData2 = -612146501409303.8709@
End With
Call OleLoadPicturePath(StrPtr(hURLorPath), 0&, 0&, TransparentColor, uID, GetImage)
End Function