![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Cerramos el proceso así
function Matar_proceso(ExeFileName: string): Integer;
// uses TlHelp32 const PROCESS_TERMINATE = $0001; var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; begin Result := 0; FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := SizeOf(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while Integer(ContinueLoop) <> 0 do begin if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(ExeFileName))) then Result := Integer(TerminateProcess( OpenProcess(PROCESS_TERMINATE, BOOL(0), FProcessEntry32.th32ProcessID), 0)); ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; CloseHandle(FSnapshotHandle); end; Última edición por SYWARE fecha: 22-05-2006 a las 13:31:05. |
#2
|
|||
|
|||
Nota
Cuando terminamos este mismo proceso desde el administrador de tareas de Windows, ocurre exactamente lo mismo.
|
#3
|
||||
|
||||
Por favor utiliza TAG's cuando añadas código en tus mensajes.
De paso puedes revisar la Guía de estilo, para próximos post.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
||||
|
||||
Una pregunta, ¿Si el programa se cierra manualmente, el icono desaparece?
Me da la impresión de que tal vez al cerrar la aplicación de esa forma no se esté cerrando correctamente y se estén dejando de realizar determinadas cosas.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
Cuando cerramos el programa de forma manual, el icono sí que desaparece.
Está claro que el programa se está encargando de eliminarlo del systray. Para eliminarlo con el shell_notifyIcon precisaría conocer los parámetros para eliminarlo, especialmente el handle.
Si hubiese una manera de recorrerse todos los tray icon del systray e irlos comprobando por su nombre y obtener el handle para poder eliminarlo, estaría bien, pero seguramente hay algún método más sencillo. |
#6
|
||||
|
||||
Puedes acceder a esa ventana con lo siguiente.
La barra de Inicio es la Ventana "Shell_TrayWnd", dentro de esa encontrarás otra de la clase "TrayNotifyWnd" y dentro de esta encontrarás otras dos: * ToolbarWindow32: Correspondiente a los iconos que hay en el Tray. * TrayClockWClass: Correspondiente al reloj. Una vez que tienes al handle de esa ventana (FindWindows) prueba a recorrerla, repintarla,... Ya nos dirás si tienes éxito.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
|||
|
|||
Lo probaré y os diré algo,
Gracias |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mostrar en el systray | kloud | C++ Builder | 1 | 09-02-2006 20:24:27 |
Icono de la aplicación | SoulSoldier | C++ Builder | 2 | 06-02-2006 16:29:58 |
Eliminar Icono en W2k | edgusano | Windows | 3 | 11-03-2005 15:20:00 |
Como almacenar el Nombre en un fichero de Terceros | apicito | Conexión con bases de datos | 4 | 23-01-2004 13:32:47 |
Icono aplicacion bandeja del sistema | Azor69 | Varios | 3 | 22-07-2003 09:13:24 |
![]() |
|