Menú

Mostrar Mensajes

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ú

Mensajes - byway

#161
Cita de: seba123neo en  3 Septiembre 2008, 04:08 AM
Novlucker  se refiere al identificador del programa,el ID del proceso

si tienes razon sabiendo el ID del proceso se le puede terminar pero ... la duda ahora es si este PID es el mismo en todas las pc donde se ejecuten ... osea si el mismo ejecutable obtiene la misma ID en otra pc ... si esto fuese asi no serviria de mucho... ademas me parece obtiene una Id de proceso de acuerdo al momento que se ejecuto... osea si se ejecuto despues de otro porceso o antes .. esa PID no sera la misma..

o estoy ekivocado?


Salu2.
#162
si ese es el caso puedes trabajar con el nombre de la ventana activa ... y finalizar el proceso correspondiente... no toma en cuenta el nombre del exe... solo el nombre de la ventana .. lo cual seria lo mejor .. coimo sabras eso no pueden cambiarle a menos que lo editen con algun resoucer o edit hex.

Option Explicit

Private Declare Function OpenProcess Lib "kernel32" (ByVal _
dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long

Private Declare Function GetExitCodeProcess Lib "kernel32" _
(ByVal hProcess As Long, lpExitCode As Long) As Long

Private Declare Function TerminateProcess Lib "kernel32" _
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject _
As Long) As Long

Private Declare Function GetWindowThreadProcessId Lib "user32" _
   (ByVal hwnd As Long, lpdwProcessId As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Const PROCESS_TERMINATE = &H1
Const PROCESS_QUERY_INFORMATION = &H400
Const STILL_ACTIVE = &H103

Public Sub CerrarProceso(TítuloVentana As String)
Dim hProceso As Long
Dim lEstado As Long
Dim idProc As Long
Dim winHwnd As Long

winHwnd = FindWindow(vbNullString, TítuloVentana)
If winHwnd = 0 Then
    Exit Sub
End If
Call GetWindowThreadProcessId(winHwnd, idProc)

' Obtenemos el handle al proceso
hProceso = OpenProcess(PROCESS_TERMINATE Or _
PROCESS_QUERY_INFORMATION, 0, idProc)
If hProceso <> 0 Then
    ' Comprobamos estado del proceso
    GetExitCodeProcess hProceso, lEstado
    If lEstado = STILL_ACTIVE Then
    ' Cerramos el proceso
        If TerminateProcess(hProceso, 9) <> 0 Then
         
        'Else
         
        End If
    End If
    ' Cerramos el handle asociado al proceso
    CloseHandle hProceso
Else

End If
End Sub



y lo llamas asi:

CerrarProceso ("titulo_de_la_ventana")


para obtener el titulo de la ventana basta con ver el admin de tareas (aplicaciones ).

Salu2.
#163
 :huh: :huh: :huh: :huh:

ponte a revisar ...  :-\ :-[
#164
para que no corra no se pero puedes hacer que lo finalize .. cada vez que lo encuentre en memoria ... con un mata procesos...

Public Sub KillProcess(ByVal processName As String)
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


y lo llamas asi:

KillProcess ("Miexe.exe")


#165
Cita de: aaronduran2 en  2 Septiembre 2008, 23:59 PM
cuando lo ejecuto, me dice que no se puede crear el objeto ActiveX.


registra la dll al sistema...  ;D ;D

#166
Cita de: katanaia en  2 Septiembre 2008, 16:56 PM
Es una joda este post, no? Aparte dudo que sepas programar cuando, por lo que se puede "decodificar" de tu post, pareciera que no terminaste el secundario. No usas comas, mayusculas, puntos, adjetivos, sustantivos, predicados... que dolor de cabeza da leer este tipo de posts.

:laugh: :laugh: :laugh: muchos post inician diciendo que kieren ayuda para terminar su proyecto y terminan pidiendo todo el proyecto .. y sin ponerse a revisar ... que flojos.
#167
 :-\ :-\ :-\ :-\

todo lo anterior lo junte y te lo dejo para que revises ok ..  :huh: :huh: :huh:

descarga
#168
hay muchas maneeraas de  hacrlo sin dll.
[/quote]

me referia que sea en vb y que no este parpadeando ni nada por el estilo... osea que lo esconda y listo... vi uno que lo hacia mediante la creacion de un driver en tiempo de ejecucion pero es detectado por algunos antivirus .. logico por la tarea que hace ...

y no solo oculat el proceso del task manager sino tambien de cualkier aplicacion que muestre los procesos ..

aki el link
#169
fijate bien los nombres de la tabla y el campo que estas leyendo ...

veo que pones cantidad_de_stock y tambien veo stock ...

aki un ejemplo de como puedes hacerlo:

Dim BaseDatos As Database
Dim Direccion, Tabla As String
Dim Rs As Recordset

Private Sub Form_Load()

Direccion = App.Path & "\perfumeria.mdb"   'asignamos la ruta
Set BaseDatos = OpenDatabase(Direccion)  'abrimos la base de datos
Tabla = "Select * From cantidad_de_stock"   'asignamos la tabla
Set Rs = BaseDatos.OpenRecordset(Tabla)   'abrimos el campo de la tabla
Stock.Text = Rs!Stock                                 'mostramos el contenido del campo en el textbox

End Sub


o tambien puedes hacerlo usando el control data ...


Private Sub Form_Load()

Data1.DatabaseName = App.Path & "\perfumeria.mdb"    'abrimos la base de datos de acces
Data1.RecordSource = "cantidad_de_stock"     'abrimos la tabla de la base de datos
Data1.Refresh                                               'refrescamos por si hay cambios

Stock.Text = Data1.Recordset!Stock    'asignamos el contenido del campo al textbox para que lo visualize

End Sub


tambien puedes usar el control adodc o sentencias sql .. pero lo mas facil de leer, modificar, escribir datos es usando el control data o adodc asi como declarando la conexión database y recordset ...

Salu2.

#170
para que te muestre todos los terminos de buskeda ... ummm en este caso deberias de trabajar con los campos ..  lo mejor y recomendable seria que uses una base de datos creada en access ..

pero si kieres que te ayuden en tu problema pon parte de tu codigo para que lo vean y que puedes modificar o añadir para lo que buscas... pues como sabras hay muchas formas de hacer lo que pides pero si no se parece en nada a lo que hisiste estaras mas perdido ....

salu2.