![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Buenas!
En una aplicación necesitaba arrancar una serie de servicios antes de ejecutarla y matarlos al finalizarla. Buscando en el foro encontre este código que pongo a continuación: Código:
procedure TForm1.Button2Click(Sender: TObject); begin // el nombre que se le pasa a la función es el nombre del ejecutable que // se quiere matar matar_proceso('events.exe'); end; function TForm1.matar_proceso(ExeFileName: string): Integer; 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; Espero que con esto puedas hacer lo que buscas. Saludos!!
__________________
De lo bueno lo mejor, de lo mejor lo superior. |
#2
|
|||
|
|||
Gracias
![]() Que casualidad que este hecho en Delphi y venga con los fuentes! Pero ¿que pone en la licencia exactamente? ¿Me lo puede explicar alguien? Tampoco entiendo lo que quieren decir en la Web, en lo de SORRY! En la licencia creo entender que los fuentes solo estan ahi para educacion. Si lo utilizo para aprender ![]() Esto me trae a la mente otra vez el tema de las patentes de la porra, que por cierto no se como anda el asunto. Me dare una vuelta por www.internautas.org y por www.hispalinux.com a ver. Saludos! |
#3
|
||||
|
||||
Cita:
Mas u menos.... más menos que más ![]() Lo de Sorry ! en la web es porque el programa ahora es de pago, aunque existen varias copias circulando por internet. Última edición por Lepe fecha: 14-09-2004 a las 17:53:21. |
#4
|
|||
|
|||
Gracias Lepe
![]() Pero no respoondes a mi pregunta principal. No se si me explicado bien. Si yo hago un programa en Delphi que haga lo mismo. No utilizando el mismo codigo que el EndItAll. Pero si esta hecho en Delphi tambien, pues sera muy parecido. Osea, si hay un programa que muestra en pantalla un ShowMessage que te dice lo que sea y se llama "YaTeDigo" y yo tambien quiero hacer un programa que muestre un mensaje en pantalla y lo llamo "TeLoDiceAdela". El que hizo el "YaTeDigo" utiliza este codigo:
y el mio utiliza:
o un programa que liste las impresoras que tienes o todo tu hardware. Los programas coincidiran en el 90% del codigo por que estan hechos en delphi los dos y hacen lo mismo y ambos programadores recurirran a las mismas tecnicas y herramientas y busquedas en Google, Club Delphi ![]() Entonces, ¿Yo no puedo hacer un programa que finalice procesos y aplicaciones? |
#5
|
||||
|
||||
Es que no sé como responderte
![]() No sé hasta que punto pueden decir que has plagiado un programa ![]() Lo que sí es cierto es que, al haber obtenido este programa por medios distintos a PcMagazine,ya es ilegal, ya que no permite la difusion en ftp, webs ni otro tipo de almacenamiento. Este es el archivo completo de la licencia, por si algún compañero del foro puede deducir algo más que yo: Cita:
Última edición por Lepe fecha: 20-09-2004 a las 09:58:48. |
![]() |
|
|
![]() |
|