PDA

Ver la Versión Completa : cerrar aplicacion


unko!
19-03-2005, 23:02:07
olas, miren, yo quiero hacer ke desde mi aplicacion se pudiera cerrar otra aplicacion (notepad, msn, word...) con solo presionar un boton... ya cheke el codigo de trucomania pero cuando lo meto y lo ejecuto me da un monton de errores.... alguien sabe otra forma de hacer esto??

Neftali [Germán.Estévez]
21-03-2005, 11:35:09
...yo quiero hacer ke desde mi aplicacion se pudiera cerrar otra aplicacion (notepad, msn, word...) con solo presionar un boton... ya cheke el codigo de trucomania pero cuando lo meto y lo ejecuto me da un monton de errores
Normalmente los códigos que se encuentran en trucomanía están probados, eso me hace pensar que los errores que te salen no sean debidos al código propiamente.
Por favor, coloca el código que te está dando error (si no lo vemos difícilmente podremos ayudarte) y describe los errores con un poco más de detalle (el mensaje no estaría mal...:D).

A parte de ésto si revisas la sección de trucos de ésta página encontrarás uno llamado: Cerrar una aplicacion pasandole el titulo de la ventana (386) (http://www.clubdelphi.com/vertruco.php?id=386) que tal vez te sirva.
supongo que no te has molestado en buscar en los foros, ya que si simplemente escribes en la ventana de búsqueda las dos palabras que usas como título de tu mensaje encontrarás varios mensajes con el mismo problema (y en los que ya se incluyen soluciones).

unko!
21-03-2005, 19:40:34
en truco ke cheke es el de "cerrar la aplicacion sabiendo el nombre del exe" ya lo cheke y le movi unas cosillas y ya corrio... aki lo dejo:

****en uses de tu form escribe TLHelp32******

procedure TForm1.Button1Click(Sender: TObject);

function KillTask(FileName:String):integer;
var
ContinueLoop:BOOL;
FSnapshotHandle:THandle;
FProcessEntry32:TProcessEntry32;
const
PROCESS_TERMINATE=$0001;
begin
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(FileName))
or (UpperCase(FProcessEntry32.szExeFile)=UpperCase(FileName)))
then

Result:=Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE,BOOL(0),

FProcessEntry32.th32ProcessID),0));
ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;


begin
KillTask('Notepad.exe');
end;

[Gunman]
17-06-2006, 12:02:59
a mi no me funciona...

Neftali [Germán.Estévez]
19-06-2006, 09:41:20
...¿Y si damos algun detalle más?
P.D: A mi me funciona perfectamente.

mguixot
07-07-2006, 13:41:43
Hola,

estoy implementando el código anterior y no me funciona.
El error mostrado es 'Undeclared identifier: TProcessEntry32'.
No se si debo incluir alguna unidad (unit) externa.
Utilizo Delphi 7 Profesional.

Saludos

seoane
07-07-2006, 13:46:32
Si lees con atención el código veras que que en la primera linea pone


****en uses de tu form escribe TLHelp32******

Bicho
07-07-2006, 13:47:23
Has añadido la unit TLHelp32??? Lo pone en la primera linea en comentario del truco

Bicho
07-07-2006, 13:47:58
Upss se me adelantó... :p

mguixot
07-07-2006, 13:51:42
Gracias a todos, lo estaba implementando directamente de este foro y no de la pagina de trucomania, por eso no lo encontraba.
Al final Google, me llevo a trucomania y a la solución.

Saludos