Autor
|
Tema: Permitir abrir un programa una sola ves (Leído 3,613 veces)
|
IvanUgu
Desconectado
Mensajes: 237
eMiNeM
|
como puedo hacer para permitir abrir un programa una sola ves ????
tengo que ver los procesos que estan funcionando???
Salu2
|
|
|
En línea
|
Para atrapar a un ladron se necesita otro ladron... El diablo sabe por diablo, pero mas sabe por viejo...
|
|
|
NYlOn
Desconectado
Mensajes: 842
OOOOHHHHHH, TARAGÜIIII xDDDDDD
|
x suerte el vb nos facilita esta tarea solo introduce este codigo el el load del primer form: Private Sub Form_Load () If App.PrevInstance = True Then 'si el programa ya esta en ejecucion, entonces MsgBox "El programa ya esta en ejecucion" 'mandas un mensaje para avisar al usuario (esto se puede obviar...) End 'cierra el programa End If
un abraz0 G0nz4
|
|
« Última modificación: 14 Septiembre 2005, 19:51 pm por NYlOn »
|
En línea
|
|
|
|
IvanUgu
Desconectado
Mensajes: 237
eMiNeM
|
mmm, como hago para que por ejemplo, yo tengo un programa ejecutado y quiero que si se ejecuta un programa llamado "programa.exe" que lo cierre
|
|
|
En línea
|
Para atrapar a un ladron se necesita otro ladron... El diablo sabe por diablo, pero mas sabe por viejo...
|
|
|
kakinets
Desconectado
Mensajes: 414
[>Argentina<]
|
es una linea de codes Shell ("taskkill /im .exe") eso y listo... Suerte PD:Don dise ".exe" Debes poner el nombre del programa ejemplo "programa.exe"
|
|
|
En línea
|
|
|
|
IvanUgu
Desconectado
Mensajes: 237
eMiNeM
|
ok, como hago para saber si un programa esta en ejecucion ??
|
|
|
En línea
|
Para atrapar a un ladron se necesita otro ladron... El diablo sabe por diablo, pero mas sabe por viejo...
|
|
|
|
IvanUgu
Desconectado
Mensajes: 237
eMiNeM
|
Men aver si me ayudan de una ves, yo quiero saber cual es el codigo que:
Me diga si "proceso.exe" esta ejecutado o no (por ejemplo)
|
|
|
En línea
|
Para atrapar a un ladron se necesita otro ladron... El diablo sabe por diablo, pero mas sabe por viejo...
|
|
|
Ch3ck
Desconectado
Mensajes: 337
Elite
|
Haber supongo que tienes un programa llamado vigilante.exe el cual vigila si hay un programa en ejecución verdad?, en este caso el programa seria proceso.exe tal como intentas decir aqui: mmm, como hago para que por ejemplo, yo tengo un programa ejecutado y quiero que si se ejecuta un programa llamado "programa.exe" que lo cierre
Entonces has lo que te digo toma el codigo scrito por NYLOn y modificalo has que paresca asi: 'Escrito por NYLOn y brebemente modificado por mi. 'Le agregas un control timer llamado timer1 y en false Private Sub cmdKill_Click() If chkPreguntar.Value = 1 Then If MsgBox("Esta seguro que desea terminar el proceso '" + Lvw.SelectedItem + "' ?", vbQuestion + vbYesNo) = vbYes Then KillProcess (Lvw.SelectedItem) cmdProcesos_Click End If Else KillProcess (Lvw.SelectedItem) cmdProcesos_Click End If End Sub
Private Sub cmdProcesos_Click() Dim i As Long Dim proc As PROCESSENTRY32 Dim snap As Long Dim exename As String Lvw.ListItems.Clear snap = CreateToolhelpSnapshot(TH32CS_SNAPall, 0) proc.dwSize = Len(proc) theloop = ProcessFirst(snap, proc) i = 0 While theloop <> 0 exename = proc.szExeFile ret = Lvw.ListItems.Add(, "first" & CStr(i), exename) Lvw.ListItems("first" & CStr(i)).SubItems(1) = proc.th32ProcessID i = i + 1 theloop = ProcessNext(snap, proc) Wend CloseHandle snap End Sub
Public Sub KillProcess(ByVal processName As String) 'Esto creo deve ir en el modulo. esto no lo modifique es solo lo del timer On Error GoTo ErrHandler Dim oWMI Dim ret Dim sService Dim oWMIServices Dim oWMIService Dim oServices Dim oService Dim servicename Set oWMI = GetObject("winmgmts:") Set oServices = oWMI.InstancesOf("win32_process") For Each oService In oServices
servicename = LCase(Trim(CStr(oService.Name) & ""))
If InStr(1, servicename, LCase(processName), vbTextCompare) > 0 Then ret = oService.Terminate End If
Next
Set oServices = Nothing Set oWMI = Nothing
ErrHandler: Err.Clear End Sub
Private Sub Form_Load() Dim header As ColumnHeader Lvw.View = lvwReport Lvw.ColumnHeaders.Clear Set header = Lvw.ColumnHeaders.Add(, "first", "Process", 2000) Set header = Lvw.ColumnHeaders.Add(, "second", "ID", 950) Lvw.Refresh Timer1.enabled = True 'Activa el timer End Sub
Private Sub Form_Resize() Lvw.Height = Me.Height - 500 Lvw.Width = Me.Width - 1575 cmdKill.Left = Lvw.Width + 100 cmdProcesos.Left = Lvw.Width + 100 End Sub
Private Sub Timer1_Timer () With Lvw 'Con el list For i = 0 to .ListCount ' o .count es que no recuerdo If i = "Proceso.exe" then Killprocess ("programa.exe") Else next i End with End sub Has mas o menos lo anterior. ESTE CODIGO LE FALTA LO DEL MODULO COPIALO DE DONDE TE DIJE ANTERIORMENTE. Es que no tengo el visual basic y no se si es exactamente asi.
|
|
« Última modificación: 18 Septiembre 2005, 00:25 am por .PoluX. »
|
En línea
|
|
|
|
NYlOn
Desconectado
Mensajes: 842
OOOOHHHHHH, TARAGÜIIII xDDDDDD
|
Men aver si me ayudan de una ves, yo quiero saber cual es el codigo que:
Me diga si "proceso.exe" esta ejecutado o no (por ejemplo) flaco que te pasa ?? aka no estamos para que pidas cosas y los demas te las hagan.. el foro esta para que preguntes las dudas que tengas, no para que te hagan un programa... y que es eso de " Men aver si me ayudan de una ves" ?? ?? ?? si buscas un poco en el foro pudieras haber echo tu programa sin crear este thread, ademas con toda la info que te postearon no hacen falta mas mensajes y un "Gracias" no estaria de mas... Salu2 G0nz4 PD: el post no es con animos de ofender, sino de que reflexiones y cambies un pokito tu actitud... ---------- FIN DEL COMUNICADO ----------
|
|
|
En línea
|
|
|
|
Xpeed
Desconectado
Mensajes: 472
Res Publica Non Dominetur
|
pfff totalmente deacuerdo aqui no se ordena que le den codigos, simplemente se pide el favor de orientacion un saludo.
|
|
|
En línea
|
|
|
|
|
|