FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Cerrar Ejecutable externo
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Cerrar Ejecutable externo
Posted: Fri Oct 08, 2021 09:18 PM
Hola a todos amigos del foro.

Estoy utilizando el programa de terceros LTFViewr5u.exe para hacer un preview con la clase TDosPrn

Todo funciona muy bien, solo que al salir del modulo que lo llama, debo cerrarlo manualmente como es logico, ya que es una aplicacion de terceros.

Alguna manera de cerrarlo desde mi sistema?

Gracias por la ayuda que puedan prestarme
"Los errores en programaci贸n, siempre est谩n entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Cerrar Ejecutable externo
Posted: Fri Oct 08, 2021 09:29 PM

c:= "TaskKill /IM LTFViewr5u.exe"
RUN &c

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Cerrar Ejecutable externo
Posted: Fri Oct 08, 2021 09:33 PM
Intenta con:

Code (fw): Select all Collapse
聽 聽SendMessage( FindWindow( 0, "LTFViewr5u" ), WM_CLOSE )


Regards, saludos
Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: Cerrar Ejecutable externo
Posted: Sat Oct 09, 2021 01:15 AM

Estimados amigos,

Ninguna de las dos opciones funcionaron.

La de Joao se ejectua sin problemas pero no cierra el .exe

La de hmpaquito arroja error en RUN &C

"Los errores en programaci贸n, siempre est谩n entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 990
Joined: Wed Oct 19, 2005 02:17 PM
Re: Cerrar Ejecutable externo
Posted: Sat Oct 09, 2021 09:09 AM
Buenos d铆as !!!

Jos茅 mira si en este hilo puedes encontrar lo que buscas:

https://groups.google.com/g/harbour-users/c/FCyLEly6l-0

Muchas gracias.

Saludos,
Posts: 990
Joined: Wed Oct 19, 2005 02:17 PM
Re: Cerrar Ejecutable externo
Posted: Sat Oct 09, 2021 09:14 AM
Tambi茅n se podr铆a ajustar el siguiente c贸digo a Harbour

Code (fw): Select all Collapse
#include <windows.h>
#include <process.h>
#include <Tlhelp32.h>
#include <winbase.h>
#include <string.h>
void killProcessByName(const char *filename)
{
    HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL);
    PROCESSENTRY32 pEntry;
    pEntry.dwSize = sizeof (pEntry);
    BOOL hRes = Process32First(hSnapShot, &pEntry);
    while (hRes)
    {
        if (strcmp(pEntry.szExeFile, filename) == 0)
        {
            HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0,
                                          (DWORD) pEntry.th32ProcessID);
            if (hProcess != NULL)
            {
                TerminateProcess(hProcess, 9);
                CloseHandle(hProcess);
            }
        }
        hRes = Process32Next(hSnapShot, &pEntry);
    }
    CloseHandle(hSnapShot);
}


Ejemplo:

Code (fw): Select all Collapse
int main()
{
    killProcessByName("notepad++.exe");
    return 0;
}


Sacado de Stackoverflow https://stackoverflow.com/questions/7956519/how-to-kill-processes-by-name-win32-api

Muchas gracias.

Saludos,
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Cerrar Ejecutable externo
Posted: Sun Oct 10, 2021 06:33 AM
A petici贸n de nuestro querido Felix:

Code (fw): Select all Collapse
function Main()

   KillProcessByName( "notepad.exe" )

return nil

#pragma BEGINDUMP

#include <Windows.h>
#include <hbapi.h>
#include <string.h>
#include <tlhelp32.h>

void killProcessByName(const char *filename)
{
    HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL);
    PROCESSENTRY32 pEntry;
    BOOL hRes;

    pEntry.dwSize = sizeof (pEntry);
    hRes = Process32First(hSnapShot, &pEntry);
    
    while (hRes)
    {
        if (strcmp(pEntry.szExeFile, filename) == 0)
        {
            HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, 0,
                                          (DWORD) pEntry.th32ProcessID);
            if (hProcess != NULL)
            {
                TerminateProcess(hProcess, 9);
                CloseHandle(hProcess);
            }
        }
        hRes = Process32Next(hSnapShot, &pEntry);
    }
    CloseHandle(hSnapShot);
}

HB_FUNC( KILLPROCESSBYNAME )
{
   killProcessByName( hb_parc( 1 ) );
}

#pragma ENDDUMP
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Cerrar Ejecutable externo
Posted: Sun Oct 10, 2021 01:24 PM
Estimados

Lo hago as铆
Code (fw): Select all Collapse
 WinExec("tskill  programa.exe",0)


Tambi茅n hay 茅sta forma.
Code (fw): Select all Collapse
FUNCTION CerrarProceso(cProceso)
  Local oWMIob, oWMIserver, aProcess, objProcess

  TRY
    oWMIob := CreateObject( "wbemScripting.SwbemLocator" )
    catch
    RETURN nil
  END
  oWMIserver := oWMIob:ConnectServer()
  aProcess :=oWMIserver:ExecQuery( "Select * from Win32_Process" )
  For Each objProcess in aProcess
    IF UPPER(objProcess:Name) = UPPER(cProceso)
      objProcess:Terminate()
    Endif
  Next

Return nil
Saludos,



Adhemar C.
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: Cerrar Ejecutable externo
Posted: Sun Oct 10, 2021 02:49 PM
Hola a Todos,

Muchas Gracias a los que se avocaron a mi solicitud.
prob茅 todas las opciones sugeridas y ninguna me habia funcionado. La que hizo el Master Linares adaptando la idea sugerida de baxajuan, funcion贸 perfecto.

Ademar, prob茅 tu sugerencia y no quiso funcionar. Le coloque la A a la palabra Taskill que me imagino que la tecla se te escap贸, pero a煤n asi no cerr贸 el .exe

Antes habia solventado de manera poco elegante con esta funcion que me invent茅,

Code (fw): Select all Collapse
Static Function Fnct_ClosePreview()

聽 聽 Local cCommand, cBat

聽 聽 cCommand 聽:= 'taskkill /f /im LTFViewr5u.exe'
聽 聽 cBat := fcreate( '_3.bat' ); fwrite( cBat, 聽cCommand ) 聽; fclose( cBat )
聽 聽 WaitRun( ('_3.bat'), 0 )
聽 聽 FErase ( '_3.bat' )

return .t.


Por supuesto ya la desech茅.

Agradecido con todos, un abrazo.
"Los errores en programaci贸n, siempre est谩n entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.
Posts: 990
Joined: Wed Oct 19, 2005 02:17 PM
Re: Cerrar Ejecutable externo
Posted: Sun Oct 10, 2021 04:40 PM
Hola Jos茅 !

Me alegra saber que ha funcionado la funci贸n encontrada en stackoverflow, pero ten en cuenta, como dice en el hilo de d贸nde se ha sacado la funci贸n que es sensible a min煤sculas y may煤sculas.

Saludos,
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: Cerrar Ejecutable externo
Posted: Sun Oct 10, 2021 05:21 PM
Baxajaun wrote:Hola Jos茅 !

Me alegra saber que ha funcionado la funci贸n encontrada en stackoverflow, pero ten en cuenta, como dice en el hilo de d贸nde se ha sacado la funci贸n que es sensible a min煤sculas y may煤sculas.

Saludos,


Gracias amigo, lo tengo en cuenta
"Los errores en programaci贸n, siempre est谩n entre la silla y el teclado..."



Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin



Carora, Estado Lara, Venezuela.

Continue the discussion