| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
dobermannmx Master


Registrado: 30 Ago 2006Mensajes: 191Ubicación: Zapopan, Jal. - México
|
Publicado: Jue 24 Sep, 2009 2:47 am Asunto: ¿Cómo puedo cerrar un exe hecho en VFP desde Builder? |
|
|
Saludos a todos en el foro, hace dias postee una duda y ahora la pongo de otra manera ya que me está volviendo loco este asunto...
Lo que necesito es poder cerrar un programa EXE desarrollado en Visual Fox Pro v9, desde una aplicación mia desarrollada en CBuilder 2007.
Originalmente lo hacía enviando un mensaje WM_CLOSE al handle de la ventana de cualquier EXE, el problema en concreto es que como VFP utiliza runtimes no puedo hacerlo de la misma manera, ya que me marca un error de seguridad.
Alguien me puede orientar de que otra manera puedo lograr mi objetivo a través de la API de windows sin tener problemas con el runtime?
Cualquier pista, ayuda o solución será de mucha ayuda.
Gracias de antemano.
Saludos _________________ ISC
Dobermannmx |
|
| Volver arriba |
|
 |
ZHAX1 Master

Registrado: 09 Mar 2007Mensajes: 191
|
Publicado: Vie 25 Sep, 2009 1:01 pm Asunto: |
|
|
| Código: |
int KillALLTask(String FileName)
{
// Hay que añadir: #include <tlhelp32>
try
{
bool ContinueLoop;
HANDLE FSnapshotHandle;
PROCESSENTRY32 FProcessEntry32;
FSnapshotHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FProcessEntry32.dwSize = sizeof(FProcessEntry32);
ContinueLoop = Process32First(FSnapshotHandle, &FProcessEntry32);
while (ContinueLoop)
{
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) == UpperCase(FileName)) || (UpperCase(FProcessEntry32.szExeFile) == UpperCase(FileName)))
{
TerminateProcess(OpenProcess(PROCESS_TERMINATE, 0, FProcessEntry32.th32ProcessID), 0);
}
ContinueLoop = Process32Next(FSnapshotHandle, &FProcessEntry32);
}
CloseHandle(FSnapshotHandle);
return 0;
}
catch(Exception &e)
{
fdebug("No se pueden martar los procesos: "+e.Message,"MatarProcesos.log");
}
}
|
para usarlo pones en la funcion el nombre del ejecutable por ejemplo "programa.exe" y mueren todos los procesos instanciados. |
|
| Volver arriba |
|
 |
dobermannmx Master


Registrado: 30 Ago 2006Mensajes: 191Ubicación: Zapopan, Jal. - México
|
Publicado: Vie 25 Sep, 2009 3:35 pm Asunto: |
|
|
Muchas Gracias ZHAX1, pues en verdad estaba ciclado con este asunto y necesitaba una idea fresca como la tuya, voy a probarlo.
Salu2 _________________ ISC
Dobermannmx |
|
| Volver arriba |
|
 |
dobermannmx Master


Registrado: 30 Ago 2006Mensajes: 191Ubicación: Zapopan, Jal. - México
|
Publicado: Sab 26 Sep, 2009 3:59 pm Asunto: |
|
|
ZHAX1 funciona de maravilla, en verdad 1'000,000 de gracias pues además de solucionar mi problema encontré otro error que tenía en mi código
Te debo una
Saludos _________________ ISC
Dobermannmx |
|
| Volver arriba |
|
 |
|