Página 1 de 2

cerrar programa mediante ams

Publicado: 17 Mar 2012 05:15
por miinacom3
hola atodos mi duda es la siguiente quiero en mi proyecto poder cerrar un programa o proceso q se este ejecutando por jemplo algun (proceso .exe) disculpen si ya esta en el foro mi pregunta saludos----------

Re: cerrar programa mediante ams

Publicado: 17 Mar 2012 09:39
por rafaxplayer
Sabiendo como se llama el proceso... esta chupao usa System.TerminateProcess y para saber los que hay en curso System.EnumerateProcesses

Re: cerrar programa mediante ams

Publicado: 18 Mar 2012 10:42
por miinacom3
solo quiero terminar el proceso me lo podrias explicar mejor con un ejemplo ya q no soy tan avanzad como uds por fi

Re: cerrar programa mediante ams

Publicado: 18 Mar 2012 18:58
por rafaxplayer
Depende como se llame el proceso... prueva en administrador de tareas de windows cuando este el proceso abierto y sabiendo el nombre  , puede ser application.exe o lo que sea... terminalo con la acción System.TerminateProcess , solo es eso.

Re: cerrar programa mediante ams

Publicado: 01 Abr 2012 10:25
por mensajero1
A mí me ha servido....

Re: cerrar programa mediante ams

Publicado: 05 Abr 2012 16:30
por Ceone
file_to_check_for = "wmplayer.exe"; --have all lowercase (todo en minusculas)
processes = System.EnumerateProcesses();

for j, file_path in pairs(processes) do
    file = String.SplitPath(file_path);
    if (String.Lower(file.Filename..file.Extension)) == file_to_check_for then
        dResult = Dialog.Message("Terminate", "Want close Windows Media Player?", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON1)
        if dResult == IDYES then
        	System.TerminateProcess(j);
        end
    end
end
HIDE: ON
Hidebb Message Hidden Description

Re: cerrar programa mediante ams

Publicado: 18 Ago 2012 18:06
por GEORGEFTR
:cerrado:

Re: cerrar programa mediante ams

Publicado: 18 Ago 2012 20:02
por abood1987
;) good ceone
Where are you ?

Re: cerrar programa mediante ams

Publicado: 18 Ago 2012 21:03
por mecivic
;)

Re: cerrar programa mediante ams

Publicado: 04 Ene 2013 08:30
por tam
thanks

Publicado: 14 May 2013 07:47
por sarumanice
Gracias por el codigo Ceone, me descargue el "Libro AMS 8.0 por Douglas A." :friends: y he llegado a rebisar de nuevo la parte de "tablas", y se me dio una duda, se podria poner una lista de procesos a lo cuales uno quiere cerrar con una tabla?

asi:

tablaAlucard = {"uno.exe", "dos.exe", "tres.exe", "cuatro.exe", "cinco.exe"}


O talves los puestos en un lixbox?

Gracias :friends:

Publicado: 14 May 2013 09:34
por rafaxplayer
claro y checkeas la tabla si uno de ellos se esta ejecutando y de ser asi , lo cierras.

Publicado: 14 May 2013 09:58
por Metafunken
sarumanice escribió:O talves los puestos en un lixbox?
Sencillo...

Boton On Click u On Preload o que se yo...

ListBox.DeleteItem("ListBox1", LB_ALLITEMS);
processes = System.EnumerateProcesses();
nCounter = 0;
for j, file_path in pairs(processes) do
	nCounter = nCounter + 1;
    sSplitProcs = String.SplitPath(file_path);
    sProcName = sSplitProcs.Filename;
    sProcExt = sSplitProcs.Extension;
  	
	sProcNameLow = String.Lower(sSplitProcs.Filename);
    sProcExtLow = String.Lower(sSplitProcs.Extension);
  	
  	sContainer = ListBox.AddItem("ListBox1", j.." "..sProcName..sProcExt, sProcNameLow..sProcExtLow);
  	Label.SetText("Label_Found", "Found: "..string.format("%02d", nCounter));
	Application.Sleep(25);
end

ListBox On Select o On Double-Click

nQuestion = Dialog.Message("Warning!", "You are about to end a process ...\r\n\r\nContinue?", MB_OKCANCEL, MB_ICONEXCLAMATION, MB_DEFBUTTON2);
if (nQuestion == IDCANCEL) then
	Application.ExitScript();
else
	sSelect = ListBox.GetSelected("ListBox1");
	if (sSelect == nil) then
		Application.ExitScript();
	else
		nFileToVeryf = ListBox.GetItemData("ListBox1", sSelect[1]);
		instances_of_file = 0;
		file_to_check_for = nFileToVeryf;
		processes = System.EnumerateProcesses();

		for j, file_path in pairs(processes) do
    		file = String.SplitPath(file_path);
	    	if (String.Lower(file.Filename..file.Extension)) == file_to_check_for then
    	    	System.TerminateProcess(j);
    		end
		end
	end
	Page.ClickObject("xButton1");
end

Publicado: 17 May 2013 08:18
por sarumanice
Muchas gracias por el codigo MetaFunken, lo modifique un poco para lograr que funcionara un poco más automatico...:
cuenta = "1";
while true do
	nFileToVeryf = ListBox.GetItemData("ListBox1", cuenta);
	if nFileToVeryf ~= "" then
		file_to_check_for = nFileToVeryf;
		processes = System.EnumerateProcesses();
		for j, file_path in pairs(processes) do
			file = String.SplitPath(file_path);
			if (String.Lower(file.Filename..file.Extension)) == file_to_check_for then
				System.TerminateProcess(j);
			end
		end
		cuenta = cuenta + "1";
		else
		Dialog.Message("Notice", "Busqueda terminada!", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
		break;
	end
end


En el Lixbox1 puse en la parte de data estos ejecutables;

filezilla.exe
wmplayer.exe
ccleaner.exe

Lo extraño fue que cuando abro el CCleaner, y entro al administrador de tareas, y me voy a la pestaña de procesos veo efectivamente el proceso del ccleaner, pero con mayusculas las dos "CC" osea asi; "CCleaner.exe" pero tube que poner en el lixbox en miniscula "ccleaner.exe", lo cual me extraño un poco, pero revizando el codigo bi que pusiste
if (String.Lower(file.Filename..file.Extension))
Pero me pregunto xq???

No es posible cerrar un proceso si el nombre esta en mayuscula?

Gracias de nuevo por el codigo!, :ohyeah:

Publicado: 17 May 2013 08:44
por rafaxplayer
mm yo creo que esto es porque en el listbox sabes que esta en minúscula y en el proceso no , así te aseguras que la comparación no tenga en cuenta esto.

Publicado: 17 May 2013 19:52
por Metafunken
sarumanice escribió:Pero me pregunto xq???

No es posible cerrar un proceso si el nombre esta en mayuscula?
Analiza bien el ejemplo que te puse, este ejemplo es demasiado basico (propio de ams) y funciona perfectamente, al menos como yo te lo puse...

Comprendamos lo siguiente:

Primero que nada "YO programador" puedo nombrar a mi proceso como quiera; incluye MAYUSCULAS o minusculas, vamos bien?

Segundo, el String.Lower , como su nombre lo indica, convierte todo un STRING "X" en minusculas, caso contrario del String.Upper. Lo que hace, en este caso y aplicado de esta manera (String.Lower) es "evitarnos" equivocaciones, de que manera? Simple, nos ayuda a hacer la comparativa en minusculas para evitar ERRORES de dedo entre mayusculas y minusculas. PERO la raiz de la busqueda debe estar en minusculas tambien para que String.Lower (verificando procesos) funcione pues si la raiz esta "NoRmAl" no funcionara. Vamos bien?

Por lo tanto, los procesos se cierran siempre y cuando los nombres coincidan (bueno realmente el codigo no cierra por el nombre sino por el ID del proceso) pero el nombre nos sirve como identificador "a los ojos" y esto es menester para nosotros pues a menos que seas "Automan" podrias identificar los procesos por ID :) .

En resumen, para cerrar un proceso debes escribir el nombre del proceso que buscas tal cual aparece en tu Administrador de Tareas (Task Manager).

Finalmente gracias a ti mi buen...

Saludos

Publicado: 20 May 2013 00:19
por Arseniy02
gracias

Publicado: 18 Sep 2014 16:12
por pepelepev
Gracias!

Re: cerrar programa mediante ams

Publicado: 19 Jul 2015 02:04
por CAEL1011
:pc: :pc: :pc: :pc: :downvote-1417755753:

Re: cerrar programa mediante ams

Publicado: 19 Jul 2015 04:59
por FranciscoBuenoBañez
TASKKILL /IM "HSSCP.exe" /F
eso rojo reemplazalo por el nombre del proceso a cerrar .
cual es el nombre ?? tu sabras! lo que quieres que finalize .por cierto metelo en un bloc de nota con extension.bat (ejemplo)
mesudacodeartanto.bat. si lo aplicas a autoplay ,lo de Rafa lo mas sensillo, pero si eres mas lioso puede que funcione doble clic en boton, añadir acciones,file open, y listo! coge la ruta del bloc de nota que creastes.bat. yo creo que acertaras mas asin ,saludos!